Laravel getRouteKeyName заменяет пробел на тире - PullRequest
0 голосов
/ 22 марта 2020

Я ищу URL стать 127.0.0.1:8000/news/some-article-title. Работая на Laravel 5.8

, текущее показывается 127.0.0.1:8000/news/some%20article%20title.

Я пробовал несколько способов сделать это ...

Первый Читая документацию laravel, я обнаружил, что вместо идентификатора за URL отображается заголовок.

public function getRouteKeyName()
{
  return 'title';
}

Второй app / Providers / RouteServiceProvider

public function boot()
{
  parent::boot();

  Route::bind('news', function($value){
     return  \App\Models\News::where('title', str_replace('-', ' ', $value))->first();
  })
}

Не сработало. URL все еще остается % 20 вместо da sh

Я пропустил что-то важное?

1 Ответ

0 голосов
/ 22 марта 2020

Вам необходимо выполнить обратную операцию следующим образом:

 <a href="{{str_replace(' ','-',$new->title)}}"> {{$new->title}}</a>

 Route::bind('news', function($value){
     return  \App\Models\News::where('title', str_replace(' ', '-', $value))->first();
  })

или вам нужно создать указанный c столбец типа slug, который будет иметь то же значение заголовка, но без пробелов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...