2012-11-08 15 views
9

मेरे पास एक ऐसा एप्लिकेशन है जो Mojolicious ढांचे का उपयोग करता है। मेरे पास डेटाबेस में एक टेबल है जिसमें त्रुटि प्रतिक्रिया और इसके साथ जुड़े अतिरिक्त विवरण की एक सूची है। मैंने डीबी टेबल के साथ काम करने के लिए संबंधित परिणाम और परिणामसेट बनाया है। परिणामसेट के साथ बातचीत करके त्रुटि के बारे में विवरण प्राप्त करने के लिए एक नियंत्रक भी है।Mojolicious में किसी अन्य नियंत्रक में कार्रवाई कैसे कॉल करें?

मेरा विचार इस नियंत्रक में एक क्रिया को कॉल करना है जो डेटाबेस से पूछताछ की गई त्रुटि (अन्य नियंत्रक द्वारा) की जानकारी प्राप्त करेगा, संसाधन के लिए अनुरोध किए गए पर्यावरण के बारे में रनटाइम जानकारी जिसके परिणामस्वरूप त्रुटि हुई, एक प्रतिक्रिया बनाएं और इसे नियंत्रित करने वाले नियंत्रक पर वापस आएं।

मैं एक नियंत्रक से दूसरी कॉल में कॉल के साथ संघर्ष कर रहा हूं। मैं Mojolicious में यह कैसे करूँ? मैं इसे पूरा करने के लिए नियंत्रक ऑब्जेक्ट ($self) पास कर सकता हूं, लेकिन ऐसा करने का एक बेहतर तरीका है, ताकि मैं कॉलिंग नियंत्रक से पूरी तरह से मेरी त्रुटि प्रबंधन प्रतिक्रिया को अलग कर सकूं?

sub startup { 
    my $app = shift; 

    # ... 
    my $thing = Thing->new(foo => 42); 
    $app->helper(thing => sub {$thing}); 
} 

अपने नियंत्रक में:

अपने मुख्य वर्ग में:

+0

आप कर सकते हैं: 'आपका :: नियंत्रक :: कक्षा :: कार्रवाई ($ स्वयं) '। इसके अलावा आप विद्रोह कर सकते हैं: '$ अन्य = $ स्वयं को आशीर्वाद दें, 'आपका :: नियंत्रक :: कक्षा'; $ Other-> कार्रवाई() '। लेकिन दोनों huggy –

उत्तर

7

Mojolicious में, आप शायद एक Mojolicious::Controller इसे से बाहर बनाने के बिना एक सहायक के साथ चारों ओर उस वस्तु पारित करने के लिए चाहते हो जाएगा

sub cool_action { 
    my $c = shift; 

    # ... 
    my $foo = $c->thing->gimmeh_foo('bar'); 
    # ... 
} 

हालांकि, अगर आप कुछ कार्यों के लिए कुछ (उदाहरण डेटाबेस) तैयार करना चाहते हैं, शायद Mojolicious की यह सुविधा पहले पुल नामित किया गया था: under आप के लिए उपयोगी है: आप [...]

पी एस कर सकते हैं

नेस्ट किए गए मार्गों के साथ कोड साझा करने के लिए। जवाब तदनुसार अद्यतन किया गया।

+0

उपयोगी संपादन के लिए धन्यवाद, @Eugen! – memowe

संबंधित मुद्दे