Laravel 5.3路由组中的域路由绑定路由模型
问题描述:
我需要在定义子域的组中设置路由模型绑定。Laravel 5.3路由组中的域路由绑定路由模型
当我运行这段代码:
Route::bind('app', function ($value) {
return App\Models\App::where([
'slug' => $value,
])->firstOrFail();
});
Route::group(['domain' => '{appSlug}.upman.dev'], function(App\Models\App $app) {});
我刚刚得到的错误消息:传递给应用程序\提供商
参数1 \ RouteServiceProvider :: {}关闭() 必须是App \ Models \ App实例, Illuminate \ Routing \ Router实例。
我不知道,如何让它工作。
非常感谢这么多家伙的回复!
答
你应该定义在RouteServiceProvider
类的boot
方法的显式模型绑定:
public function boot(){
parent::boot();
Route::bind('app', function ($value) {
return App\Models\App::where([
'slug' => $value,
])->firstOrFail();
});
}
答
它不应该是这样的:
class IndexPageController extends Controller
{
public function index($domain, App\IndexPage $page = null) {
//$domain will send first parameter
}
}
禁用此参数,您可以在您的中间件使用
$request->route()->forgetParameter('domain');
它没有影响,仍然有一些错误。 – mabezdek