2016-12-30 200 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');