/ / Laravel: Функция на модела за проверка дали съществува връзка - laravel, красноречив

Laravel: Функция на модела, за да провери дали връзката съществува - ларавел, красноречив

Имам два модела клиент, контакт със следното отношение в модела на клиента:

public function latestContact () {
return $this->hasOne(Contact::class)->latest();
}

Вече разбрах тук че незадължителният помощник е възможен начин да се провери дали връзката съществува при показване на данните. В противен случай бих получил a "Опитва да получи собственост на не-обект" грешка.

optional($customer->latestContact)->address

Сега се чудя дали има начин директно да проверите това във функцията на модела. Бих предпочел да се обадя само

$customer->latestContact->address

или нещо подобно

$customer->getLatestContactAdress

и върнете фалшив (или няма резултат), ако връзката не съществува.

Благодаря ви предварително.

Отговори:

1 за отговор № 1

Можеш определете аксесоар или функция във вашия родителски модел.

Нещо подобно в модела на вашия клиент:

public function getLatestContactAddress()
{
return optional($this->latestContact)->address;
}

И го наречете така:

$customer->getLatestContactAddress();

0 за отговор № 2

Опитайте да използвате нетърпеливо зареждане

$customer = Customer::with("latestContact")->get();

Кажете ми, ако не работи