의 배열을 반환해야합니다, 그래서 여기에 근무 뭔가 내 설치 :
public static function get_tasks($id){
$tasks = static::with('roles.tasks')->find($id)->roles->lists('tasks');
$collection = new \Illuminate\Database\Eloquent\Collection();
foreach($tasks as $roleTasks){
$collection = $collection->merge($roleTasks);
}
return $collection;
}
가 개인적으로 나는 조금이에 구문을 변경 것 :
당신은 당신의 이름 해당 모델에
Tasks
및
Roles
을 수정해야
class User extends Eloquent {
public function get_tasks()
{
return $this->hasManyThrough('Tasks', 'Roles');
}
}
:
public function getTasks(){
$this->load('roles.tasks');
$tasks = $this->roles->lists('tasks');
$collection = new \Illuminate\Database\Eloquent\Collection();
foreach($tasks as $roleTasks){
$collection = $collection->merge($roleTasks);
}
return $collection;
}
User::find($user_id)->getTasks();
'ids'에 대해서만'Task' 모델에 쉽게 접근하기 위해 join을 사용하십시오. http://stackoverflow.com/a/26187648/784588 –