Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel 5.1 use limit in with() method of eloquent

Eloquent

$staffGroup = StaffGroup::where('id', $id)
            ->with('staffGroupRight')
            ->first();

In StaffGroup Model:

public function staffGroupRight() {
    return $this->hasMany('Modules\Staff\Http\Models\StaffGroupRight');
}

what i have does is,

public function staffGroupRight() {
    return $this->hasMany('Modules\Staff\Http\Models\StaffGroupRight')->take(5);
}

but it gives total 5 rows for all staff_group but i want it to limit for one staff_group

For example

There are 10 staff_group then it gives 5 records of staffgrouprights for that 10 staff_group but i want it 5 for single staff_group

here with staffGroupRight return data appropriate to id of staff group.

but i want to set limit in that with() method data.

is it possible to set limit in with() method or not...??

like image 313
Sagar Naliyapara Avatar asked Dec 04 '15 06:12

Sagar Naliyapara


1 Answers

$staffGroup = StaffGroup::where('id', $id)
        ->with(['staffGroupRight' => function($query){
            return $query->take(10);
            }])
        ->first();

I assume you want to take 10 record of staffGroupRight.

like image 92
Yap Kai Lun Leon Avatar answered Oct 05 '22 19:10

Yap Kai Lun Leon