当我使用命令“php artisan route:list”时,出现此错误
[Illuminate\Container\BindingResolutionException]
Unresolvable dependency resolving [Parameter #0 [ <required> $methods ]] in class Illuminate\Routing\Route
当我有
时,该命令可以很好地工作Route::get('/', 'WelcomeController@index');
Route::get('home', 'HomeController@index');
但是一旦我添加其他路线,我就有这个例外
我发现问题了:
我在控制器中进行 IOC,并注入 Illuminate\Routing\Route。一旦我删除注射它就起作用了。
我有 BaseController,它扩展了 Controller。
BaseController 是
class BaseController extends Controller {
/**
* @var array Options used by the pages
*/
protected $options;
/**
* @param Route $route
*/
public function __construct(Route $route)
{
$this->options = Option::getAutoloaded();
// Load the options for the named route page
$this->options = array_merge($this->options, Option::getByPage($route->getAction()['as']));
$this->initListPlugins();
}
控制器是
class MediasController extends BaseController {
public function __construct(Route $route)
{
parent::__construct($route);
$this->options = array_merge($this->options, Option::getByPage('media'));
}
现在问题是我如何解决它:)
感谢您的帮助
每当我看到此错误时,我都会想到拼写错误,因此请确保重新检查所有内容。
只需确保您的路线链接到正确的Controller@function:
Route::get('medias', ['uses' => 'MediasController@getMediaList', 'as' => 'medias.index'])
将转到 Http/Controllers 中的 MediasController:
类 MediasController 扩展控制器 {
public function getMediaList()
{
return view('medialist');
}
}
还要确保您的控制器能够正确返回视图。 如果您使用的是
{!! link_to_route('medias.index', 'Media list') !!}
确保您还通过您的composer.json安装了“Illuminate/html”:“5.0.*@dev”。