2

Laravel 4 のリレーションシップからクエリを注文する必要があります。 と の 2 つのモデルがありTaskますSubproject

Task私は と関係がありSubprojectます。こちらです:

public function subproject() 
{
    return $this->belongsTo('Subproject');
}

私の から、結合ではなくを使用Controllerして注文したいです。SubprojectLaravel Builder

それを行う方法はありますか?

4

2 に答える 2

1

コメントから:

親テーブルに基づいて注文したい。そのように:タスクからsubprojects.id、tasks.idを選択しますtasks.subproject_id = subprojects.idのサブプロジェクトに参加しますsubprojects.id順

以下を使用して達成できます:

DB::table('tasks')
->join('subprojects', 'tasks.subproject_id', '=', 'subprojects.id')
->order_by('subprojects.id', 'ASC') // DESC
->select('subprojects.id,', 'tasks.id')
->get(); // for pagination you can use: ->paginate(5)
于 2013-07-05T07:34:22.883 に答える
1

あなたがしたいことは、熱心な読み込みです。モデルとリンクされたモデルを 1 回のリクエストで読み込みます。Eloquent::with()次のように、メソッドを使用してこれを行うことができます。

$subprojects = Subproject::with('task')->orderBy('subproject.id')->get();

次に、メモリ内でリンクされたタスクを含むサブプロジェクトのリストを取得し、SQL リクエストなしでタスクを呼び出すことができます。

foreach($subprojects as $project) {
    echo $project->task->id;
}
于 2013-07-04T18:13:55.467 に答える