Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 09 Мар 2008 23:27:21 Заголовок сообщения: Область видимости переменных |
|
|
Код: | class UsersController extends AppController
{
function index()
{
$username = $this->Session->read('user');
if ($username) {
$results = $this->User->findByUsername($username);
$this->set('user', $this->Session->read('user'));
} else {
$this->redirect('/users/login');
}
}
function login()
{
$this->set('error', false);
if ($this->data) {
$results = $this->User->findByUsername($this->data['User']['username']);
if ($results && $results['User']['password'] == md5($this->data['User']['password'])) {
$this->Session->write('user', $this->data['User']['username']);
$this->User->updateAll(array('is_active' => '1'), array('username' => "{$this->data['User']['username']}"));
$this->redirect('/users/index');
} else {
$this->set('error', true);
}
}
}
} |
View: index.thtml
Код: | <p>Hello, <? echo $user;?></p>
<? echo $html->link('logout', '/users/logout') ?> |
Template:
Код: | <td id="menu">
<?require_once $_SERVER['DOCUMENT_ROOT']."faces/app/views/users/index.thtml";?>
</td> |
Проблема:
Когда юзер логинется и его перекидывает на users/index работает как надо, пишет Hello, имя юзера
но когда я нажимаю на какую-то ссылку он пишет
Notice: Undefined variable: user |
|
Вернуться к началу |
|
|
xxx
цитировать
Зарегистрирован: 03 Мар 2008 15:58:41 Сообщения: 24
|
Добавлено: 10 Мар 2008 00:07:40 Заголовок сообщения: |
|
|
$this->set('user', $this->Session->read('user'));
эта строка в контроллере задает переменную $user для использования в view |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 10 Мар 2008 01:25:53 Заголовок сообщения: |
|
|
Цитата: | $this->set('user', $this->Session->read('user'));
эта строка в контроллере задает переменную $user для использования в view |
Я знаю что делает эта строка я спросил как сделать чтобы эта переменная была доступна во всех view |
|
Вернуться к началу |
|
|
xxx
цитировать
Зарегистрирован: 03 Мар 2008 15:58:41 Сообщения: 24
|
Добавлено: 10 Мар 2008 09:44:43 Заголовок сообщения: |
|
|
добавить строку в app_controller? |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 10 Мар 2008 10:58:01 Заголовок сообщения: |
|
|
Если очень свербит, то к переменной. хранящейся в сессии, можно и непосредственно во view обратиться.
Написать масенький хелпер на эту тему - не так уж и сложно |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 10 Мар 2008 14:30:12 Заголовок сообщения: |
|
|
Цитата: | Если очень свербит, то к переменной. хранящейся в сессии, можно и непосредственно во view обратиться.
Написать масенький хелпер на эту тему - не так уж и сложно |
Кому как
Я просто добавил во все методы контроллера
Код: | $this->set('user', $this->Session->read('user')); |
Не очень красиво конечно зато работает |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 10 Мар 2008 14:41:26 Заголовок сообщения: |
|
|
Есть Подозрение на Обрыв старта сессии...
Здеся я это обсуждал, проблема решена..
/forum/viewtopic.php?t=341 |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 10 Мар 2008 18:20:43 Заголовок сообщения: |
|
|
Из этого поста я не понял define('CAKE_SESSION_SAVE', 'php'); стоит дефолтом или нет ? |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 10 Мар 2008 18:52:15 Заголовок сообщения: |
|
|
Да, стоит дефултом.. |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 10 Мар 2008 21:09:26 Заголовок сообщения: |
|
|
А что такое Template ? |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 10 Мар 2008 21:20:21 Заголовок сообщения: |
|
|
Это кому? |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 11 Мар 2008 19:52:32 Заголовок сообщения: |
|
|
DeeperMD это я nws'у
какой такой Template я так и не понял |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 11 Мар 2008 20:04:27 Заголовок сообщения: |
|
|
KPOTOB
Я в шаблоне подключаю index.thtml и если в браузере писал
../users/index всё отображалось как надо, но если был переход на другой view CaKE писал Notice: Undefined variable: user |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 11 Мар 2008 20:23:17 Заголовок сообщения: |
|
|
nws
В каком таком шаблоне?
Нету в мануалах термина Template. Это даже телепатически не получается отгадать что это имеется в виду в терминах cake и как оно обрабатывается |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 11 Мар 2008 23:15:05 Заголовок сообщения: |
|
|
cake\libs\view\templates\layouts\default.thtml |
|
Вернуться к началу |
|
|
|