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 サイトの他の関連記事を参照してください。