Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 12.11.2014 17:05:16

Передача данных между представлениями

Всем привет!

Перешёл на laravel из asp.net mvc поэтому сильно не пинайте, если чё)

Вообщем у меня сейчас следующая задача.

Хочу в админке сделать блок инфо сообщений. Сам инфо-блок хочу сделать в главном layout'е админки, чтобы в каждом представлении не прописывать один и тот же блок, так сказать DRY(don't repeat yourself).

Идея такая я из контроллера определяю(либо не определяю) переменную $message и главный layout у меня КАК-ТО должен её хватать.

Вообщем-то некоторые вещи получились. Вот такой блочок у меня в layout
@if(!empty($message))
       <div class="col-xs-12 tempDataMessage alert alert-info">
            <i class="glyphicon glyphicon-info-sign"></i> {{$message}}
      </div>
@end

В контроллере у меня:
View::share('message', $errors);
return View::make('admin.simple_pages.simple_page')->with('page', $page);

И это работает! Но если возвращать не представление, а Redirect::to('something'), то $message теряется
В asp.net mvc есть TempData['some_key'] для передачи между запросами
Есть ли какие решения для laravel, чтобы работало и при редиректах?

Не в сети

#2 12.11.2014 23:29:10

Re: Передача данных между представлениями

Ну в общем сам разобрался

в layout'е определил блок:

<?php $infoMessage = Session::get('infoMessage');?>
@if(isset($infoMessage))
     <div class="col-xs-12 tempDataMessage alert alert-info">
          <i class="glyphicon glyphicon-info-sign"></i> {{$infoMessage}}
     </div>
@endif

и далее из контроллера кидаю сообщения которые нужно показать пользователю:

Session::flash('infoMessage', 'Запись удалена');
return Redirect::to('/admin/news');

Не в сети

#3 13.11.2014 01:14:04

Cheshirrski
masterМастер
Откуда: Днепр
Сообщений: 116
Статей: 2

Re: Передача данных между представлениями

Можно чуть проще

PHP
@if (Session::has('infoMessage'))
     <
div class="col-xs-12 tempDataMessage alert alert-info">
          <
class="glyphicon glyphicon-info-sign"></i> {{ Session::get('infoMessage') }}
     </
div>
@endif

Не в сети

#4 14.11.2014 21:20:44

Re: Передача данных между представлениями

спасибо, поправлю

Не в сети

Подвал раздела