Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
justiam
цитировать
Зарегистрирован: 28 Июл 2008 00:49:33 Сообщения: 24
|
Добавлено: 28 Июл 2008 01:11:50 Заголовок сообщения: Автоматически добавляемые данные |
|
|
Всем привет, коллеги. Я только начал разбираться с CakePHP, и у меня вопрос: а как сделать, чтобы некоторые данные отправлялись в View независимо от текущего контроллера?
Подробнее: я хочу, чтобы на каждой странице сайта выводилось имя вошедшего ($this->Auth->user) и некоторая другая информация. Отправлять данные из каждого контроллера довольно напряжно, есть ли какое-нибудь "общее" место?
В голову приходит app_controller.php, но как именовать функцию? |
|
Вернуться к началу |
|
|
levalex
цитировать
Зарегистрирован: 25 Июн 2008 09:33:24 Сообщения: 8
|
Добавлено: 28 Июл 2008 08:56:49 Заголовок сообщения: |
|
|
пишешь в объявлении контроллера
Код: | var $uses = array('User'); |
и используешь в контролеере User как свой, К примеру:
Код: |
class PostsController extends AppController {
var $uses = array('User');
function index($id) {
$this -> User -> id = $id;
$tmp = $this -> User -> read();
}
} |
|
|
Вернуться к началу |
|
|
Trk
цитировать
Зарегистрирован: 24 Янв 2008 17:41:58 Сообщения: 5
|
Добавлено: 28 Июл 2008 09:43:52 Заголовок сообщения: |
|
|
во всех контроллерах (в том числе и в app_controller) есть функция beforeFilter, которая вызывается автоматически до выполнения любого действия, тоесть чтобы переменная была доступна в любом View, нужно объявить ее в этом beforeFilter:
Код: | app_controller.php
function beforeFilter(){
$this->set('user', $userData);
} |
и в мануале кстати написано всё. |
|
Вернуться к началу |
|
|
justiam
цитировать
Зарегистрирован: 28 Июл 2008 00:49:33 Сообщения: 24
|
Добавлено: 28 Июл 2008 13:57:09 Заголовок сообщения: |
|
|
Trk: Да, спасибо, значит предполагал правильно Мануал читал под новый год и кое-что стерлось из головы, надо будет перечитать.
levalex: это будет действовать только на текущий контроллер, а я хочу чтобы все контроллеры сразу. |
|
Вернуться к началу |
|
|
evilbloodydemon
цитировать
Зарегистрирован: 11 Окт 2007 20:32:19 Сообщения: 125
|
Добавлено: 28 Июл 2008 21:29:12 Заголовок сообщения: |
|
|
Цитата: | это будет действовать только на текущий контроллер, а я хочу чтобы все контроллеры сразу. |
AppController _________________ поздняк метаться - ракеты в воздухе
jabber-конференция по CakePHP - xmpp:cakephp@conference.jabber.ru |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 29 Июл 2008 13:16:33 Заголовок сообщения: |
|
|
допиши метод
Код: | function beforeFilter(){
$this->set('user', $userData);
} |
для основного констроллера AppController
как сказал Trk.
он родитель всех контроллеров, поэтому $user будет присутвовать во всех view..
он находится в папке библиотек Пирожка.. Изучайте MVC - это ведь не сложно.. а дальше всё пойдет как по маслу.. |
|
Вернуться к началу |
|
|
|