2014-02-05 3 views
0

Я новичок в laravel, и я пытаюсь передать строку в виде, с контроллера. Как я понимаю, это должно быть что-то вроде этого:Передача строки динамически на вид в laravel4

return Redirect::route('home')->with('global','Hi!'); 

Я пытаюсь перенаправить пользователя на «дома», но есть строка «Привет!» появляются перед всем остальным. «home» - это маршрут, который отображает представление «home.blade.php».

Как бы то ни было, пользователь перенаправлен, никаких ошибок, но строка «Привет!» не отображается на «домашнем» просмотре. Я думаю, что мне нужно что-то на шаблоне «home», чтобы рассказать laravel, где поставить строку «Привет!», Но что это должно быть?

ответ

3

Не зная больше о вашем коде, сложно сказать, что именно делать, но вы должны знать, что Redirect::route()->with() - это не то же самое, что View::make()->with(). View::make()->with('var', 'value') передает переменную, называемую var, а Redirect::route()->with('var', 'value') устанавливает временную переменную сеанса.

Для того, чтобы получить доступ к «глобальной» в home.blade.php вам нужно найти его в сессии:

{{{ Session::get('global') }}} 

Кстати, чтобы получить реальную «глобальную» переменную просмотра у Вас должен быть View::share('var', 'value'), однако эта воля не работают над перенаправлением, только для текущего запроса.

+1

+1, Ницца и ясное объяснение. –

+0

работал как шарм, спасибо! –

0

Я думаю, что вы ищете,

Session::flash('global', 'Hi!'); 

«вспышки()» метод помещает данные в сессию, но только один запрос. После этого он удаляется, что в этом случае похоже на то, что вы хотите. Подробнее об этом читайте в документах! http://laravel.com/docs/session#flash-data

После того, как вы мелькнули, что данные в сессию, вы можете return Redirect::view('home') так же, как вы уже делаете, а также об использовании домашнего просмотра {{ Session::get('global') }} как alexrussell предложил.

+0

Большое спасибо, это сработало, просто положив {{{session :: get ('global')}}} на шаблон, но я буду больше смотреть на этот метод flash. –

+0

Да, это определенно сработает! Думаю, я просто предпочитаю использовать 'flash()', потому что он держит сессию красивой и аккуратной. – patricksayshi

Смежные вопросы