В предыдущих уроках у нас была связь один к одному между постом и миниатюрой. Такая связь может трактоваться двояко: каждый пост имеет свою миниатюру или каждая миниатюра принадлежит посту.
Разница между имеет и принадлежит
проявляется в том, в какой таблице находится поле
связи. В нашем случае поле связи - post_id
,
и находится оно таблице с миниатюрами.
Это значит, что пост имеет миниатюру.
Но и миниатюра в свою очередь принадлежит
посту. На практике это означает, что
можно получить миниатюру вместе с ее
постом.
Для этого нужно связать модель миниатюр
с моделью постов через отношение belongsTo
.
Давайте сделаем это:
<?php
class Thumbnail extends Model
{
public function post()
{
return $this->belongsTo(Post::class);
}
}
?>
После этого при получении миниатюры можно будет получить ее пост:
<?php
class ThumbnailController extends Controller
{
public function show()
{
$thumbnail = Thumbnail::find(1);
dump($thumbnail);
dump($thumbnail->post);
}
}
?>
Давайте получим какое-нибудь поле связанного поста:
<?php
class ThumbnailController extends Controller
{
public function show()
{
$thumbnail = Thumbnail::find(1);
dump($thumbnail->post->title);
}
}
?>
Свяжите таблицы с юзерами и профилями
отношением belongsTo
.
Получите профиль вместе с его юзером.
Получите все профили вместе с их юзерами. Выведите их в представлении в виде HTML таблицы.