我在Laravel控制器方法中使用 Artisan::call('migrate'); ,它在Laravel版本为4.1时工作 . 在使用 composer update 命令(并在composer.js中设置 "laravel/framework": "4.2.*" )更新Laravel之后,此控制器方法(因为这是其中唯一的命令)不再起作用 .
我甚至在/app/config/app.php中添加了 'cipher' => MCRYPT_RIJNDAEL_256 ,如http://laravel.com/docs/upgrade#upgrade-4.2中所述
那已经发生了:http://laravel.io/forum/06-02-2014-not-able-run-artisan-commands
当我将Artisan :: call('migrate')放入try / catch块控制器时,如下所示:
public function ArtMigr(){
try {
Artisan::call('migrate');
} catch (Exception $e) {
echo $e;
}
}
而且我收到以下错误:
异常'ErrorException',消息'使用未定义的常量STDIN - 在D:\ htdocs \ artisan_error \ vendor \ symfony \ console \ Symfony \ Component \ Console \ Helper \ QuestionHelper.php中假定为'STDIN':112堆栈跟踪:# 0 D:\ htdocs \ artisan_error \ vendor \ symfony \ console \ Symfony \ Component \ Console \ Helper \ QuestionHelper.php(112):Illuminate \ Exception \ Handler-> handleError(8,'使用undefine ...',' D:\ htdocs \ artis ...',112,Array)#1 D:\ htdocs \ artisan_error \ vendor \ symfony \ console \ Symfony \ Component \ Console \ Helper \ QuestionHelper.php(49):Symfony \ Component \ Console \ Helper \ QuestionHelper-> doAsk(对象(Symfony \ Component \ Console \ Output \ NullOutput),对象(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(对象(Symfony \ Component \ Console \ Input \ ArrayInput),对象(Symfony \ Component \ Console \ Output \ NullOutput) ,对象(Symfony \ Component \ Console \ Question \ Confi rmationQuestion))#3 D:\ htdocs \ artisan_error \ vendor \ laravel \ framework \ src \ Illuminate \ Console \ ConfirmableTrait.php(21):Illuminate \ Console \ Command-> confirm('你真的......) #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(对象(Symfony \ Component \ Console \ Input \ ArrayInput),对象(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 \ N. ullOutput))#8 D:\ htdocs \ artisan_error \ vendor \ laravel \ framework \ src \ Illuminate \ Console \ Application.php(96):Illuminate \ Console \ Command-> run(对象(Symfony \ Component \ Console \ Input \ ArrayInput),Object(Symfony \ Component \ Console \ Output \ NullOutput))#9 [内部函数]: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 - >调用('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 [内部函数]:HomeController-> postTestDatabaseConnection()#18 D:\ htdocs \ artisan_error \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Controller.php(231):call_user_func_array(Array,Array)#19 D:\ htdocs \ artisan_error \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ ControllerDispatcher.php(93):照亮\ 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 \ Contro llerDispatcher-> dispatch(Object(Illuminate \ Routing \ Route),Object(Illuminate \ Http \ Request),'HomeController','postTestDatabas ...')#22 [内部函数]:Illuminate \ Routing \ Router-> Illuminate \路由()#23 D:\ htdocs \ artisan_error \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Route.php(105):call_user_func_array(Object(Closure),Array)#24D:\ 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,true)#29 D:\ htdocs \ artisan_error \ vendor \ laravel \ framework \ src \ Illuminate \ Cookie \ Queue.php(47):Illuminate \ Session \ Middleware-> handle(Object(Illuminate \ Http \ Req) uest),1,true)#30 D:\ htdocs \ artisan_error \ vendor \ laravel \ framework \ src \ Illuminate \ Cookie \ Guard.php(51):Illuminate \ Cookie \ Queue-> handle(Object(Illuminate \ Http \)请求),1,true)#31 D:\ htdocs \ artisan_error \ vendor \ stack \ builder \ src \ Stack \ StackedHttpKernel.php(23):Illuminate \ Cookie \ Guard-> handle(Object(Illuminate \ Http \ Request)) ,1,true)#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
一切都在我身边做得好吗?
composer.js包含:
{
"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"
}
3 回答
Use of undefined constant STDIN
似乎是一个Symfony错误,请参阅github.com/symfony/symfony/issues/10795 .composer update
应该解决您的问题 .是的,实际上最后一个版本存在问题,所有以前的资源都不起作用,应该使用:
测试和工作正常 .
我想你必须在你的电话中添加一个
'-n'=>true
因为你正在制作并且“你确定问题被解雇了”
所以它会像
Artisan::call('migrate',array('-n'=>true));