Имам два модела клиент, контакт със следното отношение в модела на клиента:
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();
Кажете ми, ако не работи