Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Автоматически добавляемые данные

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
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: Да, спасибо, значит предполагал правильно Smile Мануал читал под новый год и кое-что стерлось из головы, надо будет перечитать.


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 - это ведь не сложно.. а дальше всё пойдет как по маслу..
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru