Я написал свой client.id
в сеансе с синтаксисом ниже.
$this->Session->write('Client.id', $client_id);
Затем я проверил это в view.ctp, как показано ниже.
<pre><?php print_r($this->Session->read('Client.id')); ?> </pre>
Он печатает массив с id
.
Теперь в Controller
я попробовал код ниже, чтобы получить сеанс client.id
.
$client_id = $this->Session->read('Client.id');
В это время я не получаю $client_id
. Есть ли там какая-то ошибка. Может ли кто-нибудь помочь мне, пожалуйста?
Здесь я добавляю больше кода, как указано в комментарии
В пользовательском контроллере я установил пользователя $client_id
в действии входа в систему.
if($user_role == 'client')
{
$user_email = $this->Auth->user('email');
$this->loadModel('Client');
$client_id = $this->Client->find('all',
array(
'conditions'=>array('Client.email'=>$user_email),
'fields' => array('Client.id'),
'limit' => 1,
'recursive' => -1, //int
)
);
$this->Session->write('Client.id', $client_id);
}
Вот код, который я пытался применить в условиях
if($role == 'client'){
$this->AppComment->recursive = 0;
$client_id = $this->Session->read('Client.id');
$this->Paginator->settings = array(
'conditions' => array('AppComment.client_id' => $client_id)
);
$this->set('appComments', $this->Paginator->paginate());
}
я нашел ошибку
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Array' in 'where clause'
Вот вывод для
<pre><?php print_r($this->Session->read('Client.id')); ?> </pre>
Вывод, который я получаю
Array
(
[0] => Array
(
[Client] => Array
(
[id] => 1
)
)
)
find('all')
в сочетании с ограничением 1. Вместо этого было бы намного проще сделатьfind('first')
. - person Oldskool   schedule 03.11.2015