2010-05-04 17 views

उत्तर

31

एक नियंत्रक के अंदर से:

$this->request->controller

$this->request->action

$this->request->param('paramname')

K3 में K2 तर्क के विपरीत kays जो आप अपने मार्गों में परिभाषित के माध्यम से पहुंचा जा सकता है। उदाहरण के लिए

लें इस यूआरएल:

Route::set('default', '(<controller>(/<action>(/<id>)))')  
    ->defaults(array('controller' => 'welcome', 'action' => 'index')); 

"आईडी" तर्क का उपयोग करने के लिए आप फोन था

$this->request->param('id')

आप परम से नियंत्रक/कार्रवाई तर्क उपयोग नहीं कर सकते() तरीका।

नोट, आप ग्लोबल (या "मास्टर") अनुरोध उदाहरण प्राप्त करने के लिए Request::instance() का भी उपयोग कर सकते हैं।

अधिक जानकारी के लिए देख K3 guide

+0

भयानक, धन्यवाद – n00b

+0

इसका मतलब यह है कि प्रत्येक "कार्रवाई" के लिए आपको प्रत्येक पैरामीटर के लिए चाबियों का एक सेट परिभाषित करना होगा? यह बहुत अनावश्यक काम की तरह लगता है। मैंने पढ़ा है कि ** कार्रवाई (arg1, arg2, ...) ** जैसे कार्यों में तर्कों को पारित करना ** को 3.1 में बहिष्कृत किया गया है और 3.2 – techexpert

+1

@techexpert में समाप्त हो जाएगा प्रत्येक तर्क जिसे आप यूरी जरूरतों के माध्यम से पारित करना चाहते हैं मार्ग में परिभाषित किया जाना है। यदि आप बहुत सारे पैरामीटर का उपयोग कर रहे हैं तो शायद आपको क्वेरी स्ट्रिंग का उपयोग करना चाहिए। – Matt

3

Kohana> = 3.1 का उपयोग करने वालों के लिए, यह देखा कि अनुरोध वस्तु के कुछ गुणों के तरीकों को बदल दिया गया है उपयोगी हो सकता है।

उदा। Request::controller अब Request::controller() (या $this->request->controller() जब आप नियंत्रक के अंदर हैं)।

अधिक जानकारी के लिए मैं user guide से, http://kohanaframework.org/3.1/guide/kohana/upgrading

24
के लिए

अपडेट किया गया जवाब Kohana 3.2 पर गाइड Kohana उन्नत करने के लिए संदर्भ के लिए करना चाहते हैं:

// From within a controller: 
$this->request->action(); 
$this->request->controller(); 
$this->request->directory(); 

// Can be used anywhere: 
Request::current()->action(); 
Request::current()->controller(); 
Request::current()->directory(); 
संबंधित मुद्दे