Cakephp で関連テーブルをクエリする方法のまとめ
以下の方法で実装できます
{指定したユーザーのメモにあるキーワードキーワードを含む情報を全てクエリする}
1.SQL文
SELECT * 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}%'
そしてこのSQL文を実行し、モデル
$data = $this->User->query($sql);
2. モデルのbindModel() メソッドと unbindModel() メソッドを使用します
これら 2 つのメソッドの手順については、こちらを参照してください
http://api.cakephp.org/class/model
私たちのアプローチは
//重新绑定关联指定查询条件 $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. Cakephp のコア動作 (Behavior) Containable を使用する
まず独自の AppModel クラスを作成し、ファイル /app/app_model.php を作成します
class AppModel extends Model { //加载核心行为 var $actsAs = array('Containable'); }
次に、コントローラー内のそのようなコードを通じてクエリを実行できます
$this->User->contain('Note.subject LIKE' => '%'.$keyword.'%'); $data = $this->User->find('all',array( 'conditions' => array( 'User.id' => $user_id ) ));
次のように、find ステートメントに直接記述することもできます。
$data = $this->User->find('all',array( 'conditions' => array( 'User.id' => $user_id ), 'contain' => array( 'Note' => array( 'conditions' => array( 'Note.subject LIKE' => '%'.$keyword.'%' ) ) ) ));
注:
現時点では、{User.name または Note.subject にキーワード キーワードが含まれるすべてのレコード} をクエリしたい場合
, Cakephp の find メソッドは実装できません このクエリは、次のように、上で紹介したカスタム SQL ステートメントを使用する必要があります:
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%'
上記は、Cakephp が関連するテーブルをクエリする方法の概要です。その他の関連コンテンツについては、PHP 中国語 Web サイト ( www.php.cn)!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP は、Web アプリケーション開発で広く使用されているオープンソースの PHPMVC フレームワークです。 CakePHP には、インタラクティブなパフォーマンス データベース用の強力なデータベース クエリ ビルダーなど、多くの機能とツールがあります。このクエリ ビルダーを使用すると、面倒な SQL ステートメントを作成することなく、オブジェクト指向構文を使用して SQL クエリを実行できます。この記事では、CakePHP でデータベース クエリ ビルダーを使用する方法を紹介します。データベース接続の確立 データベース クエリ ビルダーを使用する前に、まず Ca でデータベース接続を作成する必要があります。

CakePHP は、開発者に多くの便利なツールと機能を提供する強力な PHP フレームワークです。その 1 つはページネーションです。これは、大量のデータを複数のページに分割し、閲覧と操作を容易にするのに役立ちます。デフォルトでは、CakePHP はいくつかの基本的なページネーション メソッドを提供しますが、場合によってはカスタムのページネーション メソッドを作成する必要がある場合があります。この記事では、CakePHP でカスタム ページネーションを作成する方法を説明します。ステップ 1: カスタム ページネーション クラスを作成する まず、カスタム ページネーション クラスを作成する必要があります。これ

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。
