Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте, я новичок в Laravel, сильно не пинайте, пожалуйста.
Создал во views папку layouts, там создал файл main.blade.php.
У меня есть два таких метода в контроллере:
public function index()
{
$this->layout->content = View::make('index', array(
'page' => Page::where('alias', '=', '/')->firstOrFail(),
));
}
public function pages($alias)
{
$this->layout->content = View::make('pages', array(
'page' => Page::where('alias', '=', $alias)->firstOrFail(),
));
}
Никак не пойму, как мне передать в layout main переменную page?
Спасибо большое.
P.S. Погуглив, нашёл решение с View::share, но так работает, только когда я создам папку includes в папке views и там уже создам head.blade.php файл, а вместо содержимого тэгов head (в main layout) подключу таким образом: include('includes.head').
Изменено Denwebart (04.12.2013 05:24:47)
Не в сети
Не в сети
Извините, поспешил.
Всё прекрасно работает, когда использую View::share, переменная передаётся в main layout.
Предается как в includes, так и без них, то есть, просто в layout'ы.
Вот мой код контроллера, кому-то обязательно пригодится:
class SiteController extends BaseController
{
protected $layout = 'layouts.main';
public function index()
{
$this->layout->content = View::make('index');
View::share('page', Page::where('alias', '=', '/')->firstOrFail());
}
public function pages($alias)
{
$this->layout->content = View::make('pages');
View::share('page', Page::where('alias', '=', $alias)->firstOrFail());
}
}
Вопрос решён, можно закрывать тему.
Не в сети
Страницы 1