Laravel Eloquent принадлежит многим

У меня есть три таблицы:

  • пользователи (идентификатор, имя)
  • задачи (id, title)
  • task_user (идентификатор, идентификатор задачи, идентификатор пользователя, идентификатор_пользователя)
  • user_posts (идентификатор, заголовок)

То, что я пытаюсь сделать, это выбрать всех пользователей, которые имеют отношение к проекту.

В модели задач у меня есть:

class Task extends \Eloquent {protected $guarded = [];public function users()
{
return $this->belongsToMany('\User')->withPivot('user_post_id', 'hours');
}}

И работает довольно хорошо. Я получаю этот результат:

[0] => Array
(
[id] => 9
[created_at] => 1996-08-04 08:35:59
[updated_at] => 1991-07-27 16:36:47
[username] => xcremin
[email] => [email protected]
[remember_token] => $2y$10$WmtDoCCIA25Z/CF28KqlwOngR5vHvghD3cu0bbtPGftUV/ez2WBGe
[pivot] => Array
(
[task_id] => 1
[user_id] => 9
[user_post_id] => 10
)

)

Здесь вы можете увидеть пивот user_post_id поле. Вопрос — как я могу получить заголовок этого поля (с user_post_id = 10)?

0

Решение

Вы должны добавить отношение в вашем классе TaskUser

public function userPost()
{
return $this->belongsTo('UserPost');
}

и после того, как вы сможете получить имя, сделав что-то вроде, на ваш взгляд

 @foreach($task->users as $user)
{{ $user->pivot->userPost->title }}
@foreach
0

Другие решения

$user_posts = DB::table("user_post")
->whereIn("user_post_id", array($user_post_id))
->get();
-1

По вопросам рекламы [email protected]