関連性によってデータベースオブジェクトを注文する必要があります。妥当性は次のようなものです:rating/distance(lat0, lng0, lat, lng)
。複雑な順序でコードをモデルに挿入するにはどうすればよいですか?
MyModel::orderBy('rating/FUNC(:lat0, :lng0, lat, lng)', [$lat, $lng])
しかし、最初に、かなりの緯度は、式で2回出現しているので、別の引数があるように起こっている:
MyModel::orderBy('rating/FUNC(:lat0, :lng0, lat, lng)', [$lat, $lat, $lng])
第二に、それはない、私はおそらくコントローラで、このようにそれを行うことができますコントローラーでまったく同じように聞こえる音がします。そこで私がやりたい:
MyModel::orderByRelevance($lat, $lng)
だから、私のアイデアは、ヘルパー関数sql_distance_to($lat_col_name, $lng_col_name)
にSQL式を抽出することです。次に、もう1人のヘルパー:sql_distance_to_args($lat, $lng)
を追加して、[$lat, $lat, $lng]
を返します。最後のステートメントを可能にするために、この2つをモデルで使用します。あなたは何を言っていますか?それ、どうやったら出来るの?