#laravel-5 #localization
#laravel-5 #локализация
Вопрос:
У меня возникла проблема с переключателем языка при попытке выполнить маршрут с более чем одним параметром
Я получаю следующее сообщение об ошибке
Missing required parameters for [Route: client.edit] [URI: {language}/client/{id}/edit].
в заголовке, имеющем кодовый маршрут переключателя::currentRouteName()
<ul class="dropdown-menu" role="menu">
<li><a href="{{ route(Route::currentRouteName(),'en') }}">EN</a></li>
<li class="divider"></li>
<li><a href="{{ route(Route::currentRouteName(),'ar') }}">AR</a></li>
</ul>
Я попробовал приведенный ниже код, он не работает
<?php if(isset(request()->id)) { ?>
<li><a href="{{ route(Route::currentRouteName(),'en',request()->id) }}">EN</a></li>
<li class="divider"></li>
<li><a href="{{ route(Route::currentRouteName(),'ar',request()->id) }}">AR</a></li>
<?php } else { ?>
<li><a href="{{ route(Route::currentRouteName(),'en') }}">EN</a></li>
<li class="divider"></li>
<li><a href="{{ route(Route::currentRouteName(),'ar') }}">AR</a></li>
<?php } ?>
Ответ №1:
У меня возникает такой вопрос из-за того, что каждый раз, когда мы используем некоторые маршруты, где нужно отправлять 1 и более параметров (я не говорю о `language`), таких как `{id}`, `{category}` или что-то еще, например, в вашем маршруте: `/ client /{id} /edit` — такая ситуация может быть в значительной степени передана, но без собственной многоязычной реализации.
По правде говоря, я пытался использовать несколько вариантов с промежуточным программным обеспечением, ServiceProviders и другими, но лучший способ, который я понимаю, — это использовать готовое решение с поддержкой и продвигаться вперед для достижения целей разработчиков.
Вот почему я рекомендую вам использовать этот пакет (mcamara / laravel-localization). Они уже создали классные функции, такие как локализация маршрутов, стандартная поддержка многих стран и некоторые функции, которые могут быть полезны в будущем.
Кроме того, вам нужно будет отредактировать текущие скрипты, чтобы удалить старую локализацию, созданную вами или кем-то другим, и следовать инструкциям. Надеюсь, вам понравится!