我需要在定义子域的组中设置Route模型绑定。
当我运行此代码时:
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传递给App \ Providers \ RouteServiceProvider :: {closure}() 必须是App \ Models \ App的实例,实例 照亮\路由\路由器给出。
我不知道如何让它发挥作用。
非常感谢各位回复!
答案 0 :(得分:0)
您应该在boot
类的RouteServiceProvider
方法中定义显式模型绑定:
public function boot(){
parent::boot();
Route::bind('app', function ($value) {
return App\Models\App::where([
'slug' => $value,
])->firstOrFail();
});
}
答案 1 :(得分:0)
看起来应该是这样的:
class IndexPageController extends Controller
{
public function index($domain, App\IndexPage $page = null) {
//$domain will send first parameter
}
}
禁用此参数,您可以在中间件中使用
$request->route()->forgetParameter('domain');