$ this-> Auth-> user () возвращает массив с различными полями о пользователе. Я думаю, вы должны заменить строку 4 на:
$this->data['Ticket']['user_id'] = $this->Auth->user('id');
Или вы можете сначала присвоить результаты переменной, а затем прикрепить к заявке:
$user = $this->Auth->user();
$this->data['Ticket']['user_id'] = $user['User']['id'];
EDIT
Я вижу, что сейчас происходит. Вы вносите изменения в объект, а затем сохраняете данные запроса ... поэтому ваш идентификатор пользователя никогда не передается в сохранение.
Попробуйте это:
public function add() {
if ($this->request->is('post')) {
$this->Ticket->create();
$data = $this->request->data;
$data['Ticket']['user_id'] = $this->Auth->user('id');
if ($this->Ticket->save($data)) {
$this->Session->setFlash(__('The ticket has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The ticket could not be saved. Please, try again.'));
}
}
$users = $this->Ticket->User->find('list');
$this->set(compact('users'));
}