2010-09-08 5 views
1

Пытается использовать __construct внутри контроллера, чтобы назначить некоторую переменную, но он продолжает бросать ошибки. Надеясь, что кто-то может привести меня в правильном направлении.Kohana 3 Controller Constructs

class Controller_Mobile extends Controller { 

    public function __construct() 
    { 
     parent::__construct();  

     $iphoneDetect = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone"); 
     $touchDetect = strpos($_SERVER['HTTP_USER_AGENT'],"iPod"); 
     $blackberry = strpos ($_SERVER['HTTP_USER_AGENT'], 'blackberry'); 
     $android = strpos ($_SERVER['HTTP_USER_AGENT'], 'android'); 

     $iphoneDetect = true; 
     if ($iphoneDetect == true || $touchDetect == true) 
     { 
      $directory = "mobile/iphone"; 
     } 
     else if($android == true) 
     { 
      $directory = "mobile/android"; 
     } 

    } 
    public function action_index() 
    { 
     $this->request->response = 'I am mobile'; 
    } 
+0

Каковы ошибки? – irishbuzz

ответ

3

Если вы хотите использовать __construct() метод, не забывайте о Request переменной:

public function __construct(Kohana_Request $request) 
{ 
    parent::__construct($request); 
    // your code 
} 

Вот почему вы получаете ошибки с кодом.

+0

Downvote, потому что ответ @ shyammtp более полный. –

+1

Обратите внимание, что параметр $ response param был добавлен в Kohana v3.1.0, почти через 1 год после ответа. – biakaveron

7

Я на самом деле только что нашел ответ на вопрос и просто подумал, что пройду его. В Kohana 3 используются функции before() и after().

+0

поэтому вместо: __construct() вы говорите, что я могу использовать before()? Спасибо и BTW, конструктор имеет 2 аргумента: public function __construct (Request $ request, Response $ response) –

+0

Этот ответ верен для любой версии. – biakaveron

5

Вы должны использовать как запрос, так и ответ в конструкции.

public function __construct(Request $request, Response $response) 
{ 
    parent::__construct($request,$response); 
    // your code 
} 
+2

Начиная с Kohana 3.1.0. – biakaveron

Смежные вопросы