2017-01-06 2 views
2

Я все эти маршруты:сделать разницу между шоу и создавать маршруты

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

И в TournamentController, у меня есть:

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

Но когда я иду в http://laravel.dev/tournaments/create, Laravel думает создать это турнирный пул (например, http://laravel.dev/tournaments/my-tournament/) и отправьте меня на @show вместо @create.

В этом случае я получаю модель не найдена исходя из SubstituteBindings Middleware ...

Я не очень понимаю, этот, как я могу избежать путаницы ???

EDIT: Кроме того, список моих маршрутов:

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   | 

EDIT: Теперь у меня есть такая же проблема с другим маршрутом:

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

Я получаю модель не найденную SubstituteBindings Middleware.

Я думаю Ближний пытается разрешить удаленные как имя турнира ...

Case вновь открыт!

+0

У вас есть соответствующие методы в 'TournamentController' типа (** создать ** ** показать **, ** редактировать ** ...) ? – Mihailo

+0

Да, я делаю! У меня есть индекс, создайте, сохраните, покажите, отредактируйте, обновите, уничтожьте и еще 2 –

+1

вам не нужны имена маршрутов! laravel называет их точно так же, как и вы! попробуйте удалить их и снова проверить –

ответ

0

Я нашел проблему. я имел этот маршрут

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

в начале моего файла маршрута ..

My Bad !!! Я даю ответ здесь для людей, которые получают ту же проблему!

Tx всем за советы, которые помогли мне решить, что

 Смежные вопросы

  • Нет связанных вопросов^_^