Связывание Laravel Route-Model не работает, если маршрут определен в группе маршрутов

у меня есть этот маршрут,

Route::get('/posts/show/{post}', 'PostsController@show');

//corresponding controller method
public function show(Post $post){
//method logic
}

это отлично работает, когда маршрут определен вне Route :: group.

Но это не удается;

Route::group(['domain' => '{user}.localhost.com'], function () {
...
Route::get('/posts/show/{post}', 'PostsController@show');
...
}

Erro Output;

 Argument 1 passed to App\Http\Controllers\PostsController::show() must be an instance of App\Post, string given

Чтобы увидеть, что передавалось в качестве параметра, я изменил PostsController :: show () ниже;

public function show($post){
return $post;
}

//it returned the subdomain part of the url.

Я могу с уверенностью сказать, что группа маршрутов работает как задумано, потому что у меня есть другие маршруты, и они работают. (пока они не используют привязку Route-Model ofc)

Я нашел еще 2 сообщения, посвященные той же проблеме, но они не помогли мне с этим.

0

Решение

Вы создали маршрутный символ субдомена, который принимает один параметр, который является {user} и внутри вашей группы маршрутов вы принимаете другой параметр, который является {post} если вы хотите использовать привязку модели маршрута, расположите параметры в соответствующем порядке. пример $user,$post

Так что ваш контроллер должен выглядеть так

public function show($user,Post $post){
//method logic
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector