Laravel 5 通过URL调用Artisan命令

Laravel 5 通过URL调用Artisan命令,laravel-5,laravel-artisan,Laravel 5,Laravel Artisan,在我的路线上,我有 Route::get('artisan/{command}/{param}', 'CacheController@show'); 在我的控制器里我有 public function show($id, $param) { $artisan = Artisan::call($id,['flag'=>$param]); $output = Artisan::output(); return $output; } 我希望能够通过访问domain.c

在我的路线上,我有

Route::get('artisan/{command}/{param}', 'CacheController@show');
在我的控制器里我有

public function show($id, $param)
{
    $artisan = Artisan::call($id,['flag'=>$param]);
    $output = Artisan::output();
    return $output;
}
我希望能够通过访问
domain.com/artisan/cache/clear
route/cache
调用
route:cache
cache:clear
,但当我调用它们时,它返回类似的结果

public function show($command, $param) {
    $artisan = Artisan::call($command,['flag'=>$param]);
    $output = Artisan::output();
    return $output;
}
未定义命令“缓存”


它只调用了缓存,而不是
cache:clear
有什么可能出错?

如下修改代码:

    $artisan = \Artisan::call($command.":".$param);
    $output = \Artisan::output();
    return $output;

标志参数用于传递artisan命令的参数

当您调用
命令时,您正在调用
id

所以你的函数应该是这样的

public function show($command, $param) {
    $artisan = Artisan::call($command,['flag'=>$param]);
    $output = Artisan::output();
    return $output;
}
因此,您的URL可以如下所示
domain.com/artisan/cache/clear
,这意味着您正在调用此路由

Route::get('artisan/{command}/{param}', 'CacheController@show');

所以你需要
$command
intead的
$id

也许你能帮我。看看这个::|您只更改了变量名!我的问题是一样的,但你的答案并没有解决