Laravel框架5.6.39 我收到此错误:
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
Function name must be a string
这就是我在做什么。在我的App/RouteServiceProvider.php
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
$this->mapMercuriusRoutes();
}
protected function mapMercuriusRoutes()
{
Route::middleware(['web','auth','Mercurius'])
->namespace('\Launcher\Mercurius\Http\Controllers')
->group(base_path('routes/mercurius.php'));
}
然后我的路线文件mercurius.php
:
// Mercurius home
Route::get('/messages', ['as' => 'home', 'uses' => 'MessagesController@index']);
// User Profile
Route::get('/profile/refresh', 'ProfileController@refresh');
Route::get('/profile/notifications', 'ProfileController@notifications');
Route::post('/profile', 'ProfileController@update');
当我访问Mercurius路由文件中列出的localhost:8000 / messages时,出现错误。知道我在做什么错吗?
编辑:初始错误:
$response = method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
$ pipe(... $ parameters);是突出显示的一个。
Symfony\Component\Debug\Exception\FatalThrowableError
…/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php152
Illuminate\Pipeline\Pipeline Illuminate\Pipeline\{closure}
…/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php53
Illuminate\Routing\Pipeline Illuminate\Routing\{closure}
…/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php41
答案 0 :(得分:2)
我认为错误是在group
通话中。您应该使用这样的回调:
Route::middleware(['web','auth','Mercurius'])
->namespace('\Launcher\Mercurius\Http\Controllers')
->group(function ($r) {
require base_path('routes/mercurius.php');
});
检查是否有帮助。
答案 1 :(得分:1)
确保已在路由服务提供者中正确定义并注册了Mercurius
中间件。