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

Область видимости переменных
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 обратиться.
Написать масенький хелпер на эту тему - не так уж и сложно Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nws

цитировать



Зарегистрирован: 25 Фев 2008 15:42:23
Сообщения: 96

СообщениеДобавлено: 10 Мар 2008 14:30:12    Заголовок сообщения: Ответить с цитатой

Цитата:
Если очень свербит, то к переменной. хранящейся в сессии, можно и непосредственно во view обратиться.
Написать масенький хелпер на эту тему - не так уж и сложно


Кому как Very Happy

Я просто добавил во все методы контроллера
Код:
$this->set('user', $this->Session->read('user'));

Не очень красиво конечно зато работает Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
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

В каком таком шаблоне? Shocked

Нету в мануалах термина Template. Это даже телепатически не получается отгадать что это имеется в виду в терминах cake и как оно обрабатывается
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nws

цитировать



Зарегистрирован: 25 Фев 2008 15:42:23
Сообщения: 96

СообщениеДобавлено: 11 Мар 2008 23:15:05    Заголовок сообщения: Ответить с цитатой

cake\libs\view\templates\layouts\default.thtml
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
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, 2  След.
Страница 1 из 2

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


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

Рейтинг@Mail.ru