Laravel устанавливает параметры родительской группы маршрутов из дочернего маршрута - PullRequest
0 голосов
/ 29 июня 2019

Как я могу установить параметр родительского маршрута из дочерней группы маршрутов? Возможно ли это. Мой параметр - {locale}, а дочерний маршрут - projects.single. Я пробовал этот код, но он не работает:

Route::group([
'prefix' => '{locale}',
'where' => ['locale' => '[a-zA-Z]{2}'],
'middleware' => 'setlocale'
], function () {
   Auth::routes();
   Route::get('/', function () {
     return view('welcome');
   });
   Route::get('/home', 'HomeController@index')->name('home');
   Route::group(['prefix' => '/projects', 'as' => 'projects.'], function () {
      Route::get('/', 'ProjectController@index')->name('archive');
      Route::get('/{slug}', 'ProjectController@showSingle')->name('single');
   });
});

В представлении header.blade.php я использую этот код для ссылки href:

{{-- @foreach (config('app.available_locales') as $locale)
     <li class="nav-item">
        <a class="nav-link" href="{{ route(\Illuminate\Support\Facades\Route::currentRouteName(), $locale) }}"
                       @if (app()->getLocale() == $locale) style="font-weight: bold; text-decoration: underline" @endif>{{ strtoupper($locale) }}</a>
     </li>
 @endforeach--}}

Этот код выдает это сообщение об ошибке. Отсутствуют обязательные параметры для [Route: projects.single] [URI: {locale} / projects / {slug}]. (Просмотр: /home/wa/pi/resources/views/includes/header.blade.php) (Просмотр: /home/wa/pi/resources/views/includes/header.blade.php) (Просмотр: / home / в / пи / ресурсы / виды / включает / header.blade.php)

1 Ответ

0 голосов
/ 29 июня 2019

Сейчас я не знаю, как установить параметры в дочернем маршруте, но ваш параметр {locale} доступен для всех методов в ваших контроллерах. Например

public function ($locale) { // $locale is the same with {locale} in your route
    // something
}
...