X半径の範囲内にあるすべての郵便番号を見つけようとしていますが、です。TypeError
を受け取りました。Laravel緯度と経度の半径
私はこのエラーを取得しています:
Type error: Argument 1 passed to App\Transformers\PostcodesTransformer::transform() must be an instance of App\Postcodes, instance of stdClass given, called in /home/vagrant/postcode-data/vendor/league/fractal/src/Scope.php on line 338
クエリは次のとおりです。
$postcodes = DB::select("Select
id,
postcode,
latitude,
longitude,
district,
postal_town,
county,
country,
northing,
easting,
type,
acos(sin(".$lat.")*sin(radians(latitude)) + cos(".$lat.")*cos(radians(latitude))*cos(radians(longitude)-".$lon.")) * ".$R." As distance
From (
Select *
From uk_postcodes
Where latitude Between ".$minLat." And ".$maxLat."
And longitude Between ".$minLon." And ".$maxLon."
) As FirstCut
Where acos(sin(".$lat.")*sin(radians(latitude)) + cos(".$lat.")*cos(radians(latitude))*cos(radians(longitude)-".$lon.")) * ".$R."< ".$rad."
Order by distance");
return $this->response->withCollection($postcodes, new PostcodesTransformer);
DB::select
クエリの結果がstdClass
を返しますが。
Postcodes
クラスのインスタンスを返す方法を教えてください。
返事ありがとうございますSaumya。残念ながら、これはうまくいきませんでした。これは、2回の「from」クエリを実行するためです。 http://pastebin.com/xkBFP82t – MikeF
ええ、これを分割して試してみてください! –
私はすでにPostcodesモデルを定義していました。私は、 'selectRaw()'を使ってこれを実行しようとしているかどうかは完全にはわかりません。私は 'from'のサブクエリを実行する必要があります – MikeF