私は関係によってソートされたデータを使って雄弁に構築クエリを試しています。このDB構造を想像してみて:Laravel 5:単一レコードを返すときの関係別の順列
TABLE:駅
id
name
...
TABLE:station_status:
id
station_id
status_type_id
date
...
TABLE:status_type:
id
description
...
MODELS今
class Station extends \Eloquent
{
public function stationStatus() {
return $this->hasMany('App\StationStatus', 'station_id', 'id');
}
}
class StationStatus extends \Eloquent
{
public function statusType() {
return $this->hasOne('App\StatusType', 'id', 'status_type_id');
}
}
class StatusType extends \Eloquent
{
...
}
質問。ステーションIDでステーションモデルをクエリすることはできますが、関連するステータスタイプの説明でソートするにはどうすればよいですか?
は、これまでのところ私が持っている:
// This just do not work
$query = Station::join('station_status', 'station.id', '=', 'station_status.station_id')
->join('status_type', 'station_status.status_type_id', '=', 'status_type.id')
->orderBy('status_type.description', 'ASC')
->select(['stations.*'])
->with(['stationStatus.statusType']
->find(110);
は、私はこの問題は私がコレクションを返さないよ一つだけのアイテムは、find()メソッドを使用して、どのように私はこの問題を克服できるということだと思いますか?
何か助けてくれてありがとう!
私は質問を理解していないが、find()メソッドの代わりにget()メソッドを使用することはできません - > where( 'station.id'、 '='、110)? –
レコードを1つしかロードしていない場合、注文するものはありません。あなたは、記録された記録を注文したいですか? –
はい関連するレコードを注文したいので、$ query-> stationStatusにアクセスするとstatus_typeの説明になります – SirInfant