Как локализовать laravel в маршрутах

#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]); ?>