mvc - php framework
Artisan:: call(''migrate'') no funciona después de actualizar Laravel a 4.2 (3)
Estoy usando Artisan :: call (''migrate''); en un método de controlador de Laravel y que funciona mientras que la versión de Laravel era 4.1. Después de actualizar Laravel usando el comando de actualización del compositor (y establecer "laravel / framework": "4.2. *" En composer.js) este método de controlador (ya que este es el único comando en él) ya no funciona.
Incluso he agregado ''cipher'' => MCRYPT_RIJNDAEL_256 en /app/config/app.php como se indica en http://laravel.com/docs/upgrade#upgrade-4.2
Eso ya sucede: http://laravel.io/forum/06-02-2014-not-able-run-artisan-commands
Cuando pongo Artisan :: call (''migrate'') en el controlador try / catch block se ve así:
public function ArtMigr(){
try {
Artisan::call(''migrate'');
} catch (Exception $e) {
echo $e;
}
}
Y recibo el siguiente error:
excepción ''ErrorException'' con el mensaje ''Uso de constante indefinida STDIN - se supone'' STDIN '''' en D: / htdocs / artisan_error / vendor / symfony / console / Symfony / Component / Console / Helper / QuestionHelper.php: 112 Stack trace: # 0 D: / htdocs / artisan_error / vendor / symfony / console / Symfony / Component / Console / Helper / QuestionHelper.php (112): Illuminate / Exception / Handler-> handleError (8, ''Uso de undefine ...'', ''D : / htdocs / artis ... '', 112, Matriz) # 1 D: / htdocs / artisan_error / vendor / symfony / console / Symfony / Component / Console / Helper / QuestionHelper.php (49): Symfony / Component / Console / Helper / QuestionHelper-> doAsk (Object (Symfony / Component / Console / Output / NullOutput), Object (Symfony / Component / Console / Question / ConfirmationQuestion)) # 2 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Console / Command.php (186): Symfony / Component / Console / Helper / QuestionHelper-> ask (Object (Symfony / Component / Console / Input / ArrayInput), Object (Symfony / Component / Console / Output / NullOutput), Objeto (Symfony / Component / Console / Question / Confirm ationQuestion)) # 3 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Console / ConfirmableTrait.php (21): Illuminate / Console / Command-> confirm (''¿Realmente quieres ...'') # 4 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Database / Console / Migrations / MigrateCommand.php (59): Illuminate / Database / Console / Migrations / MigrateCommand-> confirmToProceed ()
5 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Console / Command.php (112):
Illuminate / Database / Console / Migrations / MigrateCommand-> fire () # 6 D: / htdocs / artisan_error / vendor / symfony / console / Symfony / Component / Console / Command / Command.php (252): Illuminate / Console / Command- > execute (Objeto (Symfony / Component / Console / Input / ArrayInput), Object (Symfony / Component / Console / Output / NullOutput)) # 7 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Console / Command.php (100): Symfony / Component / Console / Command / Command-> run (Object (Symfony / Component / Console / Input / ArrayInput), Object (Symfony / Component / Console / Output / NullOutput)) # 8 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Console / Application.php (96): Illuminate / Console / Command-> run (Object (Symfony / Component / Console / Input / ArrayInput), Object (Symfony / Component / Console / Output / NullOutput)) # 9 [función interna]: Illuminate / Console / Application-> call (''migrate'') # 10 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Foundation / Artisan.php (57): call_user_func_array (Array, Array) # 11 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Support / Facades / Facade.php (208): Illuminate / Foundation / Artisan -> __ call (''call'', Array) # 12 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Support / Facades / Facade.php (208): Illuminate / Foundation / Artisan-> call (''migrate'') # 13 D: / htdocs / artisan_error / app / controllers / HomeController.php (160) : Illuminate / Support / Facades / Facade :: __ callStatic (''call'', Array) # 14 D: / htdocs / artisan_error / app / controllers / HomeController.php (160): Illuminate / Support / Facades / Artisan :: call ('' migrate '') # 15 D: / htdocs / artisan_error / app / controllers / HomeController.php (145): HomeController-> InstallDatabaseStructure () # 16 D: / htdocs / artisan_error / app / controllers / HomeController.php (127): HomeController -> WriteDatabaseCredentials (''localhost'', ''laravel-aplikac ...'', ''root'', '''') # 17 [función interna]: HomeController-> postTestDatabaseConnection () # 18 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Routing / Controller.php (231): call_user_func_array (Ar ray, Array) # 19 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Routing / ControllerDispatcher.php (93): Illuminate / Routing / Controller-> callAction (''postTestDatabas ...'', Array)
20 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Routing / ControllerDispatcher.php (62):
Illuminate / Routing / ControllerDispatcher-> call (Object (HomeController), Object (Illuminate / Routing / Route), ''postTestDatabas ...'') # 21 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Routing / Router.php (930): Illuminate / Routing / ControllerDispatcher-> dispatch (Object (Illuminate / Routing / Route), Object (Illuminate / Http / Request), ''HomeController'', ''postTestDatabas ...'') # 22 [internal función]: Illuminate / Routing / Router-> Illuminate / Routing {closure} () # 23 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Routing / Route.php (105): call_user_func_array (Object ( Cierre), matriz) # 24 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Routing / Router.php (996): Illuminate / Routing / Route-> run (Object (Illuminate / Http / Request) ) # 25 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Routing / Router.php (964): Illuminate / Routing / Router-> dispatchToRoute (Object (Illuminate / Http / Request))
26 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Foundation / Application.php (738):
Illuminate / Routing / Router-> dispatch (Object (Illuminate / Http / Request))
27 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Foundation / Application.php (708):
Illuminate / Foundation / Application-> dispatch (Object (Illuminate / Http / Request))
28 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Session / Middleware.php (72):
Illuminate / Foundation / Application-> handle (Object (Illuminate / Http / Request), 1, verdadero) # 29 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Cookie / Queue.php (47): Illuminate / Session / Middleware-> handle (Object (Illuminate / Http / Request), 1, verdadero) # 30 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Cookie / Guard.php (51): Illuminate / Cookie / Queue-> handle (Object (Illuminate / Http / Request), 1, verdadero) # 31 D: / htdocs / artisan_error / vendor / stack / builder / src / Stack / StackedHttpKernel.php (23): Illuminate / Cookie / Guard-> handle (Object (Illuminate / Http / Request), 1, verdadero) # 32 D: / htdocs / artisan_error / vendor / laravel / framework / src / Illuminate / Foundation / Application.php (606): Stack / StackedHttpKernel-> handle (Object (Illuminate / Http / Request)) # 33 D: / htdocs / artisan_error / public / index.php (49): Illuminate / Foundation / Application-> run () # 34 {main}
¿Todo está hecho correctamente de mi lado?
composer.js contiene:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.2.*",
"way/generators": "dev-master"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
Use of undefined constant STDIN
parece ser un error de Symfony, consulte github.com/symfony/symfony/issues/10795 .
Una composer update
debería solucionar tu problema.
Creo que debes agregar un ''-n''=>true
a tu llamada
ya que está en producción y una pregunta "¿está seguro de que se disparó?"
entonces será como
Artisan::call(''migrate'',array(''-n''=>true));
Sí, realmente hay un problema con la última versión, todas las fuentes anteriores no funcionan, debería usar:
Artisan::call(''migrate'', array(''--force'' => true));
Probado y funcionando bien.