Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день!
Есть сайт, в котором есть меню, мета теги, название сайта, описание и прочее, что должно быть на каждой странице, не зависимо от роута. Все эти данные вытягиваются из mysql. Т.е. меню - это модель, которая наследуется от Eloquent. Название сайта и теги, также хранятся в базе и тоже представляют собой модель. Вопрос? Как вытаскивать эти данные перед любым запросом?
Т. е. есть ли какое-то место в laravel, где можно объявить один раз, например:
$menu=MenuModel::All();
$SiteName=SettingsModel::All();
.....
....
и свободно использовать в любой вьюшке
<div id=header>
$SiteName->name;
</div>
<ul>
<li>$menu->item</li>
</ul>
....
...
Не в сети
Где объявить - в своем сервис-провайдере, конструкторе BaseController, от которого наследуются остальные контроллеры, или в app/start/global.php.
Как передать во все вьюхи - View::share('menu', $menu);
Не в сети
Спасибо. global.php помог. И View::share тоже.
Не в сети
можешь подробно написать как ты сделал?
я тоже хочу так сделать, но не могу разобраться как
Не в сети
В app/start/global.php
В конце файла пишишь
$menu=MenuModel::All();
View::share('menu',$menu);
Теперь переменная $menu будет доступна в любой вьюшке.
Не в сети
ну а как поместить в эту переменную одну строку из таблицы БД?
метод all() вытягивает сразу все строки таблицы
Не в сети
ну а как поместить в эту переменную одну строку из таблицы БД?
метод all() вытягивает сразу все строки таблицы
Использовать другой метод, который вытягивает одну строку.
ну а где эти методы найти?
Не в сети
тут в документации ничего нету
Не в сети
вся документация состоит из каких-то обрезков
Не в сети
$menu=MenuModel::where('id','=','1')->get();
Не в сети
- вся документация состоит из каких-то обрезков
Вам нужен Eloquent, он как раз лучше всего описан, плюс по нему есть много уроков.
http://laravel.com/docs/4.2/eloquent
Не в сети
как пример
в родительском контроллере - BaseController - создаем функцию-конструктор, которая раздает данные категорий из базы (из модели категорий Category) во все шаблоны сайта:
// передаем все категории товаров во все шаблоны
public function __construct() {
$this->beforeFilter(function() {
View::share('catnav', Category::all());
});
}
Страницы 1