Laravel 5.8 обновляет красноречивую модель и вызывает аксессор в одной строке? - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть таблица contact_info_scopes, и одной из областей является «По умолчанию», что, вероятно, является самой распространенной областью именования, поэтому я создаю метод доступа

public function getDefaultScopeIdAttribute()
{
    return $this::where('contact_info_scope', 'Default')
        ->first()
        ->contact_info_scope_uuid;
}

чтобы получить defaultScopeId и интересно, как я могу обновить модель ContactInfoScope и получить доступ к ней в одной строке. Я знаю, что могу это сделать:

$contactInfoScope = new ContactInfoScope();

и затем получить к нему доступ:

$contactInfoScope->defaultScopeId;

но я бы хотел сделать это в одной строке, не сохраняя класс в переменной. Откройте для любых других творческих способов решения этой проблемы, так как аксессор не может быть идеальным здесь! Я мог бы просто создать публичную функцию (не как средство доступа), но у меня возникла бы та же проблема вызова в одной строке. Спасибо:)

1 Ответ

1 голос
/ 29 апреля 2019

Вы должны иметь возможность вызывать модель и связывать значение, если вы возвращаете экземпляр в метод конструктора

(new ContactInfoScope)->defaultScopeID

Не пробовал в Laravel, но работает на простом PHP

...