Wir können die folgenden Methoden verwenden, um
{Alle Informationen abzufragen, die das Schlüsselwort Schlüsselwort in der Notiz des angegebenen Benutzers enthalten🎜>
1. SQL-AnweisungSELECT * FROM Users AS User LEFT JOIN Notes AS Note ON User.id = Note.user_id WHERE User.id = {$user_id} AND Note.subject LIKE '%{keyword}%'Dann führen wir diese SQL-Anweisung aus und verwenden die Abfragemethode des Modells
$data = $this->User->query($sql);2. Verwenden Sie die Methoden bindModel() und unbindModel() des Modells Anweisungen zu diesen beiden Methoden finden Sie unter Bitte beachten Sie
//重新绑定关联指定查询条件 $this->User->unbindModel('Note'); $this->User->bindModel( 'hasMany' => array( 'Note' => array( 'conditions' => array( 'Note.subject LIKE' => '%'.$keyword.'%' ) ) ) ); //指定主表条件获取数据 $data = $this->User->find('all',array( 'conditions' => array( 'User.id' => $user_id ) )); //或者 $data = $this->User->read(null,$user_id);3 . Mit dem Kernverhalten (Behavior) Containable von Cakephp erstellen wir zunächst unsere eigene AppModel-Klasse und erstellen die Datei /app/app_model.php
Dann können wir sie im Controller übergeben So kann die Codeabfrage
class AppModel extends Model { //加载核心行为 var $actsAs = array('Containable'); }
auch direkt in die Find-Anweisung geschrieben werden, ähnlich wie folgt:
$this->User->contain('Note.subject LIKE' => '%'.$keyword.'%'); $data = $this->User->find('all',array( 'conditions' => array( 'User.id' => $user_id ) ));
Hinweis:
$data = $this->User->find('all',array( 'conditions' => array( 'User.id' => $user_id ), 'contain' => array( 'Note' => array( 'conditions' => array( 'Note.subject LIKE' => '%'.$keyword.'%' ) ) ) ));Wenn Sie eine Abfrage durchführen möchten {User.name oder Note.subject enthält alle Datensätze des Schlüsselworts keyword🎜>
Derzeit kann die Suchmethode von Cakephp diese Abfrage nicht implementieren und die oben eingeführte benutzerdefinierte SQL-Anweisung muss wie folgt verwendet werden:
Das Obige ist eine Zusammenfassung der Methode zum Abfragen von Assoziationstabellen in Cakephp. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).SELECT * FROM users AS User LEFT JOIN notes AS Note ON User.id = Note.user_id WHERE User.name LIKE '%keyword%' OR Note.subject LIKE '%keyword%'