2015-02-03 3 views
0

В моем cakephp3 первый я присоединиться к столу в модели, котораяCakePHP 3 обновление с Йон

public function initialize(array $config) 
{ 
    $this->belongsTo('Users', [ 
     'className'=>'Users', 
     'foreignKey'=>'user_id', 
    ]); 
} 

и когда я обновить из контроллера с помощью этого кода

$query=$this->Leaves->query(); 
     $query->contain(['Users']) 
     ->update() 
     ->set(['admin_noti_status' => 0]) 
     ->where(array('Users.company_id' => 6)) 
     ->execute(); 

он показывает мне ошибку, которая

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Users.company_id' in 'where clause' 

Но этот столбец существует в таблице пользователей.

ответ

0

Соединения в операторах обновления поддерживаются только в Mysql, поэтому CakePHP ORM не поддерживает это из коробки. Instad вы можете использовать метод from или использовать подзапрос.

Использование из:

$query->update() 
->from(['u' => 'users']) 
->where(['u.company_id' => 6]) 
->andWhere(['u.id = Leaves.user_id']) 
+0

отредактировать запрос этот запрос = $ this-> Leaves-> запрос $(); $ query-> update() -> from (['u' => 'Users']) -> set (['Leaves.admin_noti_status' => 0]) -> где (['u.company_id '=> 6]) -> выполнить(); Похоже на ту же ошибку, что и раньше –

+0

Какая ошибка? –

+0

как и раньше Ошибка: SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец «Users.company_id» в разделе «where» –

Смежные вопросы