Могу ли я поместить карту псевдонима морфинга в красноречивую модель Laravel? - PullRequest
0 голосов
/ 11 мая 2018

Есть ли свойство MyModelClass $, которое я могу установить, или метод Eloquent \ Model, который я могу переопределить, чтобы преобразовать карту в другое пространство имен?(Не в AppServiceProvider, прямо на модели, пожалуйста.)

Уродливые детали, если вы хотите знать ... Мне нравится разделять несколько моделей в разных пространствах имен.Например, у меня может быть App \ Access \ User, App \ Searchable \ User и App \ Orm \ User.Моя проблема в том, что если App \ Orm \ User доступен для преобразования в / из таблицы phone_numbers (phonable_type, phonable_id) ~ ~, то phonable_type будет App \ Orm \ User и, следовательно, App \ Searchable \ User не может перейти вномер телефона и / или я не могу найти пользователя по морфингу из телефонных номеров.

Если я не могу совмещать свой путь между пространствами имен в конструкторе запросов, то у меня есть решение... просто не такой красивый.

1 Ответ

0 голосов
/ 11 мая 2018

Ладно, разобрался ... Мне удалось перегрузить newMorphMany и изменить App \ Search \ Loan для App \ Orm \ Loan, который прикреплен к таблице замечаний (комментариев).

protected function newMorphMany(Builder $query, Model $parent, $type, $id, $localKey)
    {
    //switch namespaces
    $parent = new \App\Orm\Loan();
    return parent::newMorphMany($query, $parent, $type, $id, $localKey);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...