CakePHP UpdateAll ve HABTM

1 Cevap php

Ben iki model var ve bir masaya katılmak, User, Post ve posts_users.

posts_users table is_active, biri birkaç ekstra alanları içerir. Ben kullanıcı kendilerini aktif sağlayan aktif bir kullanıcı mesajlarda tüm ayarlamak istiyorum.

Ben şu var

$this->Post->PostsUser->updateAll(array('PostsUser.is_active' => 1), array('PostsUser.user_id' => $data['User']['id'], 'User.is_active' => 1));

Hangi MySQL hatası neden olur

(512) Uyarı: SQL hatası: 1054: 'where yan tümcesi' Bilinmeyen sütun 'User.is_active' ...

Sorgu:.. UPDATE posts_sites AS PostsUser SET PostsUser is_active = 1 WHERE PostsUser {[(5) ]} = 1 ve User. is_active = 1

Gördüğünüz gibi kullanıcı tablo sorguda birleştirilen almıyor. Bu soruna uzakta var mı?

1 Cevap

Açıkça PostsUser modelini tarif ettiniz, yoksa sadece örtülü otomatik olarak üretilen modeli kullanıyorsunuz?

Bu ikinci durumda görünüyor, böylece model muhtemelen herhangi bir dernek olmayacak. Sen güncelleştirme çağrı yapmadan önce sinek bunları bağlamak olabilir, ya açıkça model dosyası oluşturmak ve ilişkileri tanımlamak olabilir.

Yani Post ve User modellerde birbirine bağlı, ancak PostsUser modeli bunlardan birini tırmanıyor sadece boş yardımcı bir model vardır. Bu tek başına herhangi bir bağlantınız var, yani yok PostsUser hiçbir tanımlanmış dernekler vardır bir çağrı yaparken.

  Post   <--->   User
    |             |
    v             v
PostsUser     PostsUser