Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pplrPmMRAdd 191 of 252 menu
◀ ▶

Дополнительные возможности связей моделей в Laravel

В предыдущих уроках мы разобрали основные виды связей. Сейчас посмотрим ещё несколько полезных приёмов.

Проверка наличия связей

Метод has оставляет только те записи, у которых есть связанные:

<?php $users = User::has('posts')->get(); ?>

Метод doesntHave - наоборот, только записи без связей:

<?php $users = User::doesntHave('posts')->get(); ?>

Сохранение связанных моделей

Для связи один ко многим новую запись можно сохранить через отношение:

<?php $user = User::find(1); $post = new Post([ 'title' => 'title', 'text' => 'text', ]); $user->posts()->save($post); ?>

Можно создать сразу несколько:

<?php $user->posts()->create([ 'title' => 'title', 'text' => 'text', ]); ?>

Для связи многие ко многим используют attach, detach и sync:

<?php $post = Post::find(1); $post->tags()->attach([1, 2, 3]); $post->tags()->detach([2]); $post->tags()->sync([1, 3, 5]); ?>

Получите только тех юзеров, у которых есть посты.

Получите юзеров без постов.

Через отношение сохраните новый пост для выбранного юзера.

Привяжите к посту несколько тегов через attach, затем синхронизируйте список через sync.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить