Контроллеры Kohana 3 - PullRequest
       13

Контроллеры Kohana 3

1 голос
/ 08 сентября 2010

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

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';
    }

Ответы [ 3 ]

7 голосов
/ 09 сентября 2010

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

5 голосов
/ 06 ноября 2011

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

public function __construct(Request $request, Response $response)
{
   parent::__construct($request,$response);
   // your code
}
3 голосов
/ 09 сентября 2010

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

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

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

...