Если сообщения не относятся к странам, возможно, не имеет смысла вкладывать их в URI?
Но, тем не менее, чтобы ответить на ваш вопрос, вам необходимо выполнить одно из двух действий:
- Вместо установки {country: slug}, просто используйте {country} и затем переопределите функцию
getKeyRouteName()
в своих моделях Country и Post. - В качестве альтернативы, особенно если вы хотите использовать в другом месте используйте явное связывание модели.
Чтобы использовать слаг без пользовательских ключей в файле маршрутов
class Post
{
[...]
public function getRouteKeyName()
{
return 'slug';
}
}
Чтобы использовать явную привязку модели маршрута
Добавьте следующее в метод boot () вашего RouteServiceProvider:
public function boot()
{
parent::boot();
Route::bind('post', function ($value) {
return App\Post::where('slug', $value)->firstOrFail();
});
}