#laravel #routes #localization
#laravel #маршруты #локализация
Вопрос:
Я пытаюсь просмотреть многоязычные статьи, когда нажимаю кнопку «Подробнее» на странице блога
просмотр страницы блога (контроллер блога и просмотр работают нормально)
@foreach($leg as $sost)
<div>
<a href="{{route('view-post', ['lang'=>app()->getLocale(), 'slug'=>$sost->slug])}}> {{ $sost->title }}
</div>
@endforeach
Маршрут
Route::get('{lang}/article/{slug}',
[AppHttpControllersfrontendpersonalmycashmycashcontroller::class, 'view'])->name('view-post');
MycashКонтроллер
use AppModelsmycash;
public function view( $lang,$slug)
{
$post = mycash::where('slug', $slug)->firstOrFail();
return view('frontend/Personal/articles',compact('post' , 'lang'));
}
Блейд просмотра статьи
<div>
<p class="text-left" style="color: rgb(0,0,0);">{!!$post->content !!}</p>
</div>
Мои результаты
При нажатии на ссылку я получаю сообщение об ошибке [URI: {lang}/article/{slug}] [Отсутствует параметр: slug]
Что я делаю не так?
Комментарии:
1. У вас
href
отсутствует закрытие"
. У вас<a>
отсутствует закрытие</a>
. Вы убедились, что$sost->slug
это действительно что-то содержит? На какой URL-адрес вас перенаправляют?2. у меня есть закрывающие теги в порядке, но все равно выдает ошибку… Мне нужен URL-адрес localhost:8000/ru/article/blog_1
3. Я получаю эту ошибку, в которой отсутствует обязательный параметр для [Route: view-mpost] [URI: {lang}/article/{slug}] [Отсутствует параметр: slug].
Ответ №1:
<?php foreach($leg as $sost): ?>
<div>
<a href="<?= route('view-post', ['lang'=>app()->getLocale(), 'slug'=>$sost->slug]);?>">
<?= $sost->title; ?>
</a>
</div>
<?php endforeach; ?>
Комментарии:
1. я получаю эту ошибку, в которой отсутствует обязательный параметр для [Route: view-mpost] [URI: {lang}/article/{slug}] [Отсутствует параметр: slug].
2. <?= $sost->title; ?> после этой строки поместите эту строку и проверьте, правильно ли рассчитан ваш URL или нет, возможно, ошибка связана с тем, что slug не передается в url <?= route(‘view-post’, [‘lang’=>app()-> getLocale(), ‘slug’=>$sost-> slug]); ?>