rishatss
@rishatss
Simple Developer ^)

Как решить проблему передачи данных из контроллера в вид?

Добрый вечер господа.
Никак не могу продумать логику вывода данных.
Вообщем картинка следующая:
Имеется несколько видов
В одном главном виде(index.blade.php) вызывается другой вид (my_menu.blade).
В котором и начинается наблюдаться проблема
У меня стоит локализация и при переходе на страницу rishat.kg/ru/page-eng/change все хорошо работает.
Но как только я хочу сделать переход на эту страницу с меню которое реализовано в my_menu.blade начинается проблема с локализацией. Так как передается просто ссылка выбранная с базы данных и локализация не хочет прилипать так как отсутствует маршрут : вида: = {{ route('rusNewsShow',['slug'=>$item->slug]) }}"
Я никак не могу понять как запихнуть этот маршрут не ломая {{ $item_c->url }} в котором происходит выборка ссылки из БД - которая указывается в админ панели.

Исходники:
https://gist.github.com/Rishats/e69828fe248dd162c9...

Видео (описал проблему как только мог :( )
https://www.youtube.com/watch?v=LKW67RQII4w&featur...

P.S Чувствую что называю вещи не своими именами. Буду рад если подправите :)

UPD

my_menu.blade.php
@foreach($items as $item)
            <li>
                <a href="{{ $item->url }}">{{ $item->title }}</a>
                @if($item->children)
                    <ul class="submenu">
                    @foreach($item->children as $item_c)
                        <li><a href="{{ $item_c->url }}">{{ $item_c->title }}</a></li>
                    @endforeach
                    </ul>
                @endif
            </li>
            @endforeach]


Как в этот цикл передать маршрут ?
{{ route('rusPageShow',['slug'=>$item->slug]) }}
Вместо переменных
{{ $item->url }}
{{ $item_c->url }}

Проблема в зоне видимости.
  • Вопрос задан
  • 295 просмотров
Решения вопроса 2
zvermafia
@zvermafia
WebDev
Мой вариант:
// Routes
Route::group(['prefix' => LaravelLocalization::setLocale()], function() {
    Route::get('/', 'IndexController@index');
    Route::get('news/{id}', 'IndexController@showNews')->name('show.news');
    Route::get('page/{slug}', 'IndexController@showPage')->name('show.page');
});

// Views
<a href="{{ app()->getLocale() . $item->url }}">{{ $item->title }}</a>


P.S. Ваш вариант какой-то не логичный ;)

UPD:
А как в данном случае будет выборках разноязычных страниц и новостей ? У меня 3 таблицы с разными новостями ( на разных языках получается )

$table_name = 'pages_' . config('app.locale');
$pages = \DB::table($table_name)->get();

Ну вообще у вас плохая структура локализации. Вам надо переосмыслить и реструктурироват локализацию или же использовать готовую CMS для мультиязычного контента. А то у вас полохо получается кастомизация...
Ответ написан
rishatss
@rishatss Автор вопроса
Simple Developer ^)
Решил это все передачей полной ссылки в url - меню voyager админки.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы