2016-04-25 13 views
1

私はテーブルjobsを持っています。ジョブには1行以上の行が含まれている可能性がありますjobs_daysLaravelは指定された列を返すことができません。

jobsのリストを少なくとも1つの 'job day'が返すようにしたいとします。だから私はこれが私のジョブモデルです

public function days(){ 
    return $this->hasMany('App\JobsDays', 'job_id', 'id'); 
} 

これはうまくいきます。しかし、私は仕事日が少なくとも1日ある仕事のリストを持っている必要がありますが、この仕事の開始日でこのリストをソートしてください:start2(タイムスタンプ)の列。 私が使用して試してみました:

$jobs = Jobs::has('days') 
      ->leftJoin('jobs_days', function ($join) { 
       $join->where('jobs_days.job_id', '=', 'jobs.id'); 
      }) 
      ->select('jobs.id','jobs_days.start2') 
      ->orderBy('jobs_days.start2', 'asc')->paginate(15); 

これは私のstart2日付を返しません。 whereの代わりにonを使用すると、私はstart2の列を取得しますが、今度は重複したジョブを返します。

+0

あなた自身の回答を提出して受け入れることができます。 – aethergy

答えて

1

数時間後、解決策が見つかりました。参加時にonを使用して、私はシンプルを追加しました:

->groupBy('jobs.id') 

私には別のjob.idsが与えられます。なぜ別物がうまくいかないのか分かりませんが、これは仕事をするようです

関連する問題