Как я создаю, запишите и считайте данные сессии в CakePHP?

может любой давать мне пример о том, как создать Сессии и данные записи к нему. Я видел синтаксис о том, как записать данные в сессию с помощью команды записи. Но как создать сессию и получить значения в ней.

В моем приложении у меня есть два данных, form_id и user_id, который должен использоваться во всех запросах страницы. Таким образом, как я сохраняю его как переменную сеанса и использую его через приложение?

Править

function register()
{
    $userId=$this->User->registerUser($this->data);
    $this->Session->write('User.UserId',$userId);
    //echo "session".$this->Session->read('User.UserId');
    $this->User->data=$this->data;
    if (!$this->User->validates())
    {
    $this->Flash('Please enter valid inputs','/forms' );
      return;   
    }

$this->Flash('User account created','/forms/homepage/'.$userId);            

}   

Как использовать переменную сеанса 'Пользователь. UserId' вместо $userId в $this-> Flash ('Учетная запись пользователя, созданная', '/forms/homepage / '. $userId);

И я могу использовать эту переменную во всех своих файлах представления, потому что на всей странице запрашивает, чтобы я также передал идентификатор пользователя?

РЕДАКТИРОВАНИЕ 2

У меня есть 2 контроллера, пользователь и форма. Я пишу идентификатор пользователя в переменную сеанса в users_controller. У меня есть файл представления, названный homepage.ctp, действие которого находится в forms_controller. Теперь, как я могу использовать переменную сеанса, определенную в users_controller в домашней странице? Извините, если я задаю глупые вопросы. Я прошел cakebook, но мои сомнения не были очищены. Я также пробую метод проб и ошибок кодирования, поэтому помогите мне.

РЕДАКТИРОВАНИЕ 3

У меня есть переменная сеанса 'uid', который является идентификатором пользователя в действии домашней страницы контроллера.

       $this->Session->write('uid',$this->data['Form']['created_by']);

Мне нужна та же переменная в методе действия дизайна того же контроллера. Когда я даю

             $uid=$this->Session->read('uid');
            echo "uid: ".$uid;

значение не отражено.

Разве я не могу использовать переменную сеанса в том же контроллере?

8
задан Rytis 21 August 2019 в 11:34
поделиться

3 ответа

Вам не нужно писать код для создания сеанса, они уже встроены. Затем вы просто используете сеансы чтения и записи, как указано выше. Также см. Здесь для получения дополнительных сведений:

http://book.cakephp.org/2.0/en/core-libraries/components/sessions.html Используется в контроллерах

http://book.cakephp.org/2.0/en/core-libraries/helpers/session.html Используется в представлениях

2
ответ дан 5 December 2019 в 10:43
поделиться

Пекарня - ваш лучший друг:

http://book.cakephp.org/view/398/Methods

Все операции чтения / записи вашей сессии принадлежат контроллеру:

$this->Session->write('Person.eyeColor', 'Green');

echo $this->Session->read('Person.eyeColor'); // Green
10
ответ дан 5 December 2019 в 10:43
поделиться

В этом случае это будет:

$this->Flash('User account created','/forms/homepage/'.$this->Session->read('User.UserId'));

, а на ваш второй вопрос отвечает Джейсон Мий ( http://api.cakephp.org/class/session-helper ). Вы можете просто использовать это в своем представлении:

$userId = $session->read('User.UserId');

Медленное и внимательное чтение соответствующих страниц поваренной книги обычно очень помогает ...

0
ответ дан 5 December 2019 в 10:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: