2017-01-06 18 views
2

我有所有这些路线:使展会之间的差异,并制定路线

Route::resource('tournaments', 'TournamentController'); 

而在TournamentController,我有:

public function __construct() 
{ 
    $this->middleware('auth')->except('show'); 
} 

但是当我去http://laravel.dev/tournaments/create,Laravel认为创造是比赛slu((如http://laravel.dev/tournaments/my-tournament/),并发送给@show而不是@create。

在这种情况下,我得到一个模型未找到从SubstituteBindings中间件来了...

我真的不明白这一个,我怎样才能避免这种混淆???

编辑:另外我的路线清单:

POST  | tournaments                 | tournaments.store   | App\Http\Controllers\[email protected]       | web,ownTournament,auth   | 
GET|HEAD | tournaments                 | tournaments.index   | App\Http\Controllers\[email protected]       | web,auth      | 
GET|HEAD | tournaments/create               | tournaments.create   | App\Http\Controllers\[email protected]       | web,ownTournament,auth   | 
GET|HEAD | tournaments/deleted               |       | App\Http\Controllers\[email protected]      | web,ownTournament,auth   | 
GET|HEAD | tournaments/{tournament}              | tournaments.show   | App\Http\Controllers\[email protected]        | web        | 
PUT|PATCH | tournaments/{tournament}              | tournaments.update   | App\Http\Controllers\[email protected]       | web,ownTournament,auth   | 
DELETE | tournaments/{tournament}              | tournaments.destroy  | App\Http\Controllers\[email protected]       | web,ownTournament,auth   | 
GET|HEAD | tournaments/{tournament}/edit             | tournaments.edit   | App\Http\Controllers\[email protected]        | web,ownTournament,auth   | 

编辑:现在我有另一条路同样的问题:

Route::get('/tournaments/deleted', '[email protected]'); 

我得到不SubstituteBindings中间件发现了一个模型。

我猜中间是试图解决删除,因为比赛名称...

案重开!

+0

你在'TournamentController'像对应的方法(** **创建,** **显示,**编辑** ...) ? – Mihailo

+0

是的,我愿意!我有索引,创建,存储,显示,编辑,更新,销毁,以及另外2个 –

+1

您不需要路由名称! laravel正如你所做的那样命名它们!尝试删除它们并再次测试 –

回答

0

我发现了这个问题。 我有这个路线

Route::get('tournaments/{tournament}', '[email protected]')->name('tournaments.show'); 

在我的路由文件的开头..

我的坏!我为那些遇到同样问题的人们回答了这个问题!

的Tx大家对你的忠告,帮助我解决了