2016-12-15 10 views
0

を使用してlaravelに参加これはLeaveDetailsモデルであるインナーは私が内部にリンクする2モデルLeaveApplicationとLeaveDetailsモデルを持っている雄弁

LeaveApplicationモデル

class LeaveApplication extends Model { 

    public $table = 'leave_application'; 
    protected $fillable = ['user_id', 'start_date', 'end_date']; 
    public function leaveDetails() { 
     return $this->hasMany("App\LeaveDetails", 'application_id'); 
    } 
} 

leaveDetailsモデルと一緒に出国参加

class LeaveDetails extends Model { 
    public $table = "leave_details"; 
    public $fillable = ['application_id','leave_date','leave_type']; 
} 

私はインナー雄弁に参加作成されていない、それは私にエラーを与えるLeaveApplication::with('leaveDetails')->where('leaveDetails.leave_date','2016-10-10')->get()

を使用して、これをアクセスするために これを試してみてください。 Laravelのクエリは、いくつかの結合を使用するので

私もwhereHas('leaveDetails')を使用していますし、これは内部使用しないが、

答えて

1
LeaveApplication::with('leaveDetails')->where('leaveDetails.leave_date','2016-10-10')->get() 

それは動作しませんに参加します。熱心な読み込みをしている場合は、constrained eager loadingを使用することをおすすめします。あなたの雄弁クエリは次のように検索されます:

LeaveApplication::with(['leaveDetails' => function($query){ 
              $query->where('leave_date', '2016-10-10'); 
              }]); 

あなたが雄弁によって生成されるクエリの種類を迷っている場合は、toSql()を使用して、それをダンプしてみてください。

+1

すべてのLeaveApplicationデータを提供し、データをチェックしません。 –

+0

まあ、実際には 'LeaveApplication'に' leave_date'が '' 2016-10-10''である 'LeaveDetails'を取得したいのですか?私は 'LeaveApplication' **と一緒に' leave_date'が指定された 'LeaveDetails'を取得したいと思っていました。 –

+1

@MdHasiburRahaman正確に達成したいのは何ですか?達成しようとするあなたの質問は何ですか?あなたが達成しようとしていることを明確に考えてください。 – Donkarnash

関連する問題