モデル上の Laravel Raw DB クエリのバインド パラメーター
Laravel でモデル上の Raw DB クエリを操作する場合、パラメーターのバインドが課題になる可能性があります。この問題は、名前付きパラメータと位置パラメータを組み合わせて使用すると発生し、「無効なパラメータ番号: 名前付きパラメータと位置パラメータが混在しています。」というエラーが発生します。
これを解決するには、次の解決策を検討してください:
$property = Property::select( DB::raw("title, lat, lng, ( 3959 * acos( cos( radians( ? ) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(?) ) + sin( radians( ? ) ) * sin( radians( lat ) ) ) ) AS distance") ) ->having("distance", "<", "?") ->orderBy("distance") ->take(20) ->setBindings([$lat, $lng, $lat, $radius]) ->get();
setBindings() メソッドを利用すると、パラメータ値をバインドできます。クエリ。これにより、パラメータ化が必要な生の DB クエリの実行が可能になります。
以上がモデルに対するLaravel Raw DBクエリでバインディングパラメータを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。