Provoquer une erreur 404
- Event::run('system.404');
Désactiver le buffer de sortie
Dans MY_Controller.php :
- public function __construct() {
- parent::__construct();
- Kohana::close_buffers();
- }
Attention, si placé à cet endroit le buffer sera désactivé partout, ce qui provoquera la nullité de url::redirect. Pour un usage ponctuel, placer simplement Kohana::close_buffers(); en tête de méthode, dans un contrôleur :
- public function import() {
- Kohana::close_buffers();
- (...)
Ajouter éventuellement :
- public function before() {
- // empty the output buffer
- // call parent before() just incase there's anything
- // in the parent before that you need/want to execute
- parent::before();
- }
Et finalement dans votre script :
Sélectionner les users ayant un certain rôle
You want to do this :
$members = ORM::factory('role', 'member')->users;You take the role and find it’s users, not the other way around.
Ajouter un option vide en première position d’un form::dropdown
Dans le contrôleur :
- $countries .= ORM::factory('country')->select_list('id', 'country');
Dans la vue :
La première valeur (vide) sera sélectionnée. Cette syntaxe est compatible avec jquery.validate !
Alternative :
- $clients = ORM::factory('client')->orderby('name', 'asc')->select_list('id', 'name');
- $clients[0] = 'Choisissez...';
- $this->template->content->clients = $clients;
- <?php
- echo form::label('client_id', 'Client*');
- echo form::dropdown('client_id', $clients, 0);
- ?>
Récupérer un unique résultat issue de l’objet $db
- $max_numero = $this->db->query('SELECT MAX( numero ) as numero FROM folders WHERE folder_id ='.$project_id)->current();
- echo $max_numero->numero;
Vérifier si un certain Role est affecté à un User
Check if a User has a certain Role
- $user = ORM::factory('user', $this->input->post('email'));
- if ($user->has(ORM::factory('role', 'production'))) {
- // has the "production" role
- } else {
- // hasn't
- }
Outrepasser la boucle foreach() si vous savez que find_all ne renverra qu’un seul résultat
Avoid foreach() loop when you’re sure find_all() will return a single result
Controller
- // use find() instead of find_all
- $this->template->content->citation = ORM::factory('production_field')->where('user_id', Auth::instance()->get_user()->id)->where('rubrique', 'citation')->find();
View
- <?php // no need to loop through 1 result!
Aucune vue pour la méthode d’un contrôleur
Set no view for a method in a controller
This one is really basic, but sometimes I just can’t remember the syntax (I get confused with CakePHP ’s).
Method
- $this->auto_render = false;
This article will be updated from time to time...
Répondre à cet article
Commentaires