2010-09-08 19 views
1

Essayer d'utiliser __construire à l'intérieur d'un contrôleur pour assigner une variable, mais il continue de lancer des erreurs. En espérant que quelqu'un puisse me guider dans la bonne direction.Kohana 3 Contrôles constructeurs

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

Quelles sont les erreurs? – irishbuzz

Répondre

3

Si vous souhaitez utiliser la méthode __construct(), ne pas oublier Request variable:

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

C'est pourquoi vous obtenez des erreurs avec votre code.

+0

Downvote parce que la réponse de @ shyammtp est plus complète. –

+1

Notez que $ response param a été ajouté dans Kohana v3.1.0, presque 1 an après par réponse. – biakaveron

7

En fait, je viens de trouver la réponse à la question et j'ai pensé que je la transmettrais. Dans Kohana 3, vous utilisez les fonctions before() et after().

+0

donc au lieu de: __construct() vous dites que je peux utiliser l'avant()? Merci Et BTW, le constructeur a 2 arguments: fonction publique __construct (Demande $ request, Réponse $ response) –

+0

Cette réponse est correcte pour n'importe quelle version. – biakaveron

5

Vous devez utiliser à la fois la requête et la réponse dans la construction.

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

Depuis Kohana 3.1.0. – biakaveron