Laravel

Отношения

Работа с отношениями

Добавление отношения с использованием запроса

$data = Transaction::query()
->with(['campaign' => fn ($query) => $query->select("id","name")])


Добавление отношения без запроса

$data = Transaction::query()
->with('campaign')


Можно устанавливать сразу с какими то запросами

public function subscriptionsWithUnpaid(): HasMany
{
return $this->hasMany(Subscription::class, 'user_id')
->withoutGlobalScopes([
StartingScope::class,
ExpiringScope::class,
]);
}


Добавить отношения к уже имеющейся модели

info($campaign->load([
'subscriptions',
'reviewForms',
])->toArray());


Можно использовать отношение как query() (тогда нужно использовать его как метод)

$instance = $chat->bot->wa_instances()->where("messenger_type","max")->first();