2016-12-30 147 views
1

我需要在定义子域的组中设置路由模型绑定。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实例。

我不知道,如何让它工作。

非常感谢这么多家伙的回复!

回答

0

你应该定义在RouteServiceProvider类的boot方法的显式模型绑定:

public function boot(){ 

    parent::boot(); 

    Route::bind('app', function ($value) { 
      return App\Models\App::where([ 
       'slug' => $value, 
      ])->firstOrFail(); 
    }); 
} 
+0

它没有影响,仍然有一些错误。 – mabezdek

0

它不应该是这样的:

class IndexPageController extends Controller 
{ 
    public function index($domain, App\IndexPage $page = null) { 
     //$domain will send first parameter 
    } 
} 

禁用此参数,您可以在您的中间件使用

$request->route()->forgetParameter('domain');