В моей базе данных есть три таблицы, например:
пользователи
+----+---------------+-----------+
| id | name | role |
+----+---------------+-----------+
| 3 | Pavel Chekov | student |
| 5 | Nyota Uhura | student |
| 6 | Leonard McCoy | professor |
+----+---------------+-----------+
предметы
+----+--------------------------+
| id | name |
+----+--------------------------+
| 1 | Relational Databases |
| 3 | Accessibility |
| 4 | Software Engineering |
| 5 | Marketing and Business |
+----+--------------------------+
P.S .: У каждого предмета есть описание в таблице, не показанное здесь.
users_subjects
+----+---------+------------+
| id | user_id | subject_id |
+----+---------+------------+
| 1 | 6 | 1 |
| 2 | 6 | 3 |
| 3 | 3 | 1 |
| 4 | 3 | 3 |
| 5 | 3 | 5 |
+----+---------+------------+
Затем я должен отобразить в моем шаблоне темы, связанные с пользователем, который в данный момент вошел в систему (студент или профессор), например:
<section class = "section">
<div class = "tile is-ancestor">
@foreach ($subjects as $subject)
<div class = "tile is-parent">
<article class = "tile is-child box">
<p class = "title">{{ $subject->name }}</p>
<div class = "content">
<p>{{ $subject->description }}</p>
</div>
</article>
</div>
@endforeach
</div>
</section>
Для каждой темы, с которой связан пользователь, будет создана новая плитка, заполняющая раздел. Я хочу отображать только темы, относящиеся к текущему пользователю.
Как я могу этого добиться? Заранее благодарю за любую помощь.
@afsal да, впервые пользуюсь.






Если вы правильно определите свои отношения в своей модели:
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function subjects(){
return $this->belongsToMany(User::class);
}
Вы должны иметь возможность просто получать темы пользователей.
@foreach ($user->subjects as $subject)
<div class = "tile is-parent">
<article class = "tile is-child box">
<p class = "title">{{ $subject->name }}</p>
<div class = "content">
<p>{{ $subject->description }}</p>
</div>
</article>
</div>
@endforeach
Ссылка: https://laravel.com/docs/5.6/eloquent-relationships#many-to-many
Спасибо. Я впервые использую Eloquent, и этот раздел было немного сложнее для понимания, но теперь он понятнее :)
Без проблем. Хороший выбор для начала с Laravel!
Благодарность! Также извините за беспокойство, но, читая документацию и пытаясь реализовать, я получаю сообщение об ошибке «Попытка получить свойство не-объекта», когда пытаюсь определить $ user. Вы знаете, что могло вызвать это?
ты говоришь красноречиво?