2014-04-22 5 views
1

J'essaye de créer une classe de commande que je peux courir avec l'outil d'artisan. Je suis en mesure d'obtenir la commande au feu de la coquille, mais quand j'utilise ce code:Laravel Commande utilisant DB :: select

$results = DB::select('select * from users where id = ?', array(1)); 

Il me donne une erreur de « Accès refusé pour l'utilisateur « root » @ « localhost » ».

Si je cours le même code à partir d'un contrôleur normal, cela fonctionne.

Existe-t-il une routine bootstrap dont j'ai besoin de lancer depuis la commande en tant que précurseur avant d'utiliser une classe comme DB?

MISE À JOUR:

Avec les commentaires de seblaze, j'ai pu faire ce travail en remplaçant l'environnement pour artisan, comme suit:

php artisan command:name --env=local 
+0

Avez-vous veillé à ce que les paramètres ne soient pas écrasés lorsque vous utilisez l'artisan? (vérifiez ici: http://laravel.com/docs/configuration#environment-configuration) –

+0

Yep. C'est la situation. J'ai un environnement de développement et l'artisan charge l'environnement de production. Merci. – mattcrowe

+0

génial! J'ai formaté une réponse, pour d'autres références à d'autres personnes –

Répondre

1

Actuellement ceci fonctionne sans aucun problème dans un défaut Laravel installation

Veuillez cocher: Vous n'avez aucune overwritten default configuration Et vous avez la bonne configuration utilisateur/mot de passe dans votre configuration.

L'exécution de commandes artisanales avec base de données ne devrait poser aucun problème.

<?php 

use Illuminate\Console\Command; 
use Symfony\Component\Console\Input\InputOption; 
use Symfony\Component\Console\Input\InputArgument; 

class CheckDB extends Command { 

    /** 
    * The console command name. 
    * 
    * @var string 
    */ 
    protected $name = 'checkmydb:db'; 

    /** 
    * The console command description. 
    * 
    * @var string 
    */ 
    protected $description = 'Check DB.'; 

    /** 
    * Create a new command instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    /** 
    * Execute the console command. 
    * 
    * @return mixed 
    */ 
    public function fire() 
    { 
     $results = DB::select('select * from users where id = ?', array(1)); 

     $this->info($results[0]->email); 

    } 

    /** 
    * Get the console command arguments. 
    * 
    * @return array 
    */ 
    protected function getArguments() 
    { 
     return array(); 
    } 

    /** 
    * Get the console command options. 
    * 
    * @return array 
    */ 
    protected function getOptions() 
    { 
     return array(); 
    } 

} 
Questions connexes