может любой давать мне пример о том, как создать Сессии и данные записи к нему. Я видел синтаксис о том, как записать данные в сессию с помощью команды записи. Но как создать сессию и получить значения в ней.
В моем приложении у меня есть два данных, 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;
значение не отражено.
Разве я не могу использовать переменную сеанса в том же контроллере?
Я выяснил причину, по которой uid не отображался эхом (отредактируйте 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 Используется в представлениях
Пекарня - ваш лучший друг:
http://book.cakephp.org/view/398/Methods
Все операции чтения / записи вашей сессии принадлежат контроллеру:
$this->Session->write('Person.eyeColor', 'Green');
echo $this->Session->read('Person.eyeColor'); // Green
В этом случае это будет:
$this->Flash('User account created','/forms/homepage/'.$this->Session->read('User.UserId'));
, а на ваш второй вопрос отвечает Джейсон Мий ( http://api.cakephp.org/class/session-helper ). Вы можете просто использовать это в своем представлении:
$userId = $session->read('User.UserId');
Медленное и внимательное чтение соответствующих страниц поваренной книги обычно очень помогает ...