Приветствую!
Пилю тут сайтик на Laravel, и ситуация такая... На сайте есть блог, в блоге - статьи. В статьях по идее будут ссылки на другие статьи этого сайта.
Есть роуты типа
Route::get('/blog/{slug}', [
'uses' => 'BlogController@show',
'as' => 'blog.show'
]);
(т.е. ничего сверх стандартного функционала), slug беру из БД, из таблички вместе с id, текстом и т.п.)
Теперь... если в тексте статьи в блоге я впишу что-то типа
<a href="http://prophecy.local/blog/hallou" >мой анкор</a>
то все будет ок, но только до тех пор, пока не изменится либо роут (например, в роуте я заменю /blog/{slug} на /blog777/{slug}') либо слаг!
Можно, конечно, в статью впендюрить конструкцию типа
<a href="{{route('blog.show', ['post' => 'hallou'])}}">О сайте</a>
но она опять же не спасет, если изменится слаг! И еще не ясно - как конструкцию такого типа вставлять с простому пользователю.
В CMS типа Joomla этот вопрос как-то решен. Там через WYSIWYG редактор вставляется ссылка с id статьи, которая далее автоматом превращается в красивую человекопонятную ссылку. При этом ссылка обновляется при любом изменении слага или шаблона формирования ЧПУ.
Хотелось бы, чтобы также было бы и на моем сайте! Как это сделать?!
1. Наверное, надо как-то работать в первую очередь с id поста, а получать слаг. Это я даже могу сделать, написав метод в модели поста и использовав его при работе с роутом
route('blog.show', ['slug' => \App\Post::slugFromId(12)])
верный ли ход мыслей?! С такой конструкцией действительно не страшно изменение слага, и возможное небольшое изменение роута тоже проблемы не создаст.
2. Я бы может быть мог бы даже на вышеуказанной конструкции остановиться, но не ясно, как дать пользователю удобную возможность вставлять подобные ссылки через визуальный редактор статьи?!