thinkphp を使用して開発する場合、関連クエリを使用する必要がある状況によく遭遇します。関連クエリを実行するとき、条件は多くの場合注意が必要な点です。
この記事では、thinkphp で関連クエリを実行するときに条件を使用してフィルターする方法を紹介します。
- モデルでの関連付けの定義
関連付けられたクエリを実行するときは、最初にモデルで関連付けを定義する必要があります。ここでは 1 対 1 の関係を例に挙げます。まず、hasOne アソシエーションを含む User モデルを定義します。
class User extends Model { protected $table = 'users'; public function profile() { return $this->hasOne('Profile'); } }
上記のコードでは、profile という名前のモデルに関連付けられる、profile という名前の hasOne アソシエーションを定義します。 Profile モデルでは、belongsTo 関連付けを定義する必要があります。
class Profile extends Model { protected $table = 'profiles'; public function user() { return $this->belongsTo('User'); } }
上記のコードでは、user という名前のbelongsTo 関連付けを定義し、User という名前のモデルに関連付けます。
- 関連クエリの実行
関係を定義した後、コントローラーで関連クエリを実行できます。クエリ ステートメントは次のとおりです。
$users = User::with(['profile' => function($query){ $query->where('age', '>=', 18); }])->select();
上記のコードでは、 with メソッドを使用して関連クエリを実行します。このうち、最初のパラメータはクエリしたい関連付けを渡し、2 番目のパラメータはこのクエリに追加の条件付き制限を課すために使用されるコールバック関数です。
上記のコードでは、where メソッドを使用してプロファイル モデルの年齢属性をフィルターし、年齢が 18 以上のレコードのみをクエリしました。
- 連鎖操作条件
with メソッドでコールバック関数を渡してクエリ条件を制限するだけでなく、関連するクエリを実行するときに連鎖操作条件を実行することもできます。 。たとえば、次のコードは、ユーザー テーブル内の年齢が 18 歳以上のユーザー、およびプロファイル レコード内のアドレスが空ではないレコードに対するクエリを実装します。
$users = User::where('age', '>=', 18) ->with(['profile' => function($query){ $query->where('address', '', ''); }]) ->select();
上記のコードでは、まず、where メソッドを使用します。クエリ条件は User モデルに対して制限されます。次に、with メソッドのコールバック関数を使用して、プロファイル モデルのクエリ条件を制限しました。
- 概要
thinkphp で関連クエリを実行する場合、with メソッドを使用して関連クエリを実行し、コールバック関数またはチェーン操作条件をクエリ結果に渡すことができます。さらに制限され、フィルタリングされます。
もちろん、関連クエリを実行するときは、関連関係の定義、クエリ ステートメントの記述など、その他の詳細にも注意する必要があります。実際の開発プロセスでは、状況に応じて柔軟な運用を行う必要があります。
以上が条件を使用して thinkphp 関連のクエリをフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
