Laravel 5:php artisan 路由:列表 Illuminate\Container\BindingResolutionException]

问题描述 投票:0回答:1

当我使用命令“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'));
}

现在问题是我如何解决它:)

感谢您的帮助

php laravel laravel-5 laravel-routing
1个回答
-1
投票

每当我看到此错误时,我都会想到拼写错误,因此请确保重新检查所有内容。

只需确保您的路线链接到正确的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”。

© www.soinside.com 2019 - 2024. All rights reserved.