ホームページ  >  記事  >  データベース  >  Laravel Raw クエリのパラメータをモデルにバインドする方法

Laravel Raw クエリのパラメータをモデルにバインドする方法

DDD
DDDオリジナル
2024-11-15 01:31:02741ブラウズ

How to Bind Parameters in Laravel Raw Queries with a Model

Laravel の生のクエリとモデルのバインドパラメータ

Laravel では、モデルで使用される生の DB クエリにパラメータをバインドするのは難しい場合があります。ただし、役立つ回避策は次のとおりです。

問題:

名前と位置が混在しているため、次のクエリは「無効なパラメータ番号」エラーで失敗します。パラメータ:

$query = DB::raw("... :lat, :lng, (calc) AS ...")->having("calc", "<", :radius);

解決策:

setBindings() メソッドを使用してクエリ バインディングを手動で設定し、混合パラメータをオーバーライドします。問題:

$query = DB::raw("... ?, ?, (calc) AS ...")->having("calc", "<", "?");
$query->setBindings([$lat, $lng, $radius]);

説明:

DB::raw() ステートメントは位置パラメーターとして疑問符を使用するため、代わりに setBindings() を使用して設定できるようになります。名前付きバインディングの。このアプローチにより、パラメーターの混合を気にせずに、クエリ ビルダーの流暢なインターフェイスを使用できるようになります。

以上がLaravel Raw クエリのパラメータをモデルにバインドする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。