Laravel модельное отношение - поменять на мутатор, ничего не меняя в роликах - PullRequest
1 голос
/ 02 апреля 2020

У меня есть 2 таблицы, оценки и модели. Между ними есть соотношение 1: 1. Я хочу переместить названия моделей из таблицы моделей в таблицу оценок. Это будет сделано с помощью сценария, который мне придется написать самому. Эта база данных была настроена неправильно, по многим причинам мне не нужно здесь указывать. В таблице моделей есть только 2 столбца - идентификатор и имя.

Я получаю доступ к этому отношению во многих контроллерах и просматриваю все приложения:

$estimate->model_info->name

Так что я бы оставил оба Таблица моделей (без записей) и модель Model. php, сохраните старый код в контроллерах и представлениях, но новый код доступа к именам моделей будет просто:

$estimate->name

В оценке . php модель У меня есть это отношение:

public function model_info() {
    return $this->hasOne('App\Models\Model', 'id', 'model_id');
}

Как я могу просто изменить это отношение в мутатор, чтобы старый способ доступа к именам моделей и новый способ работали одновременно? Я безуспешно попробовал метод обратного вызова withDefault () , он возвращает пустое значение:

public function model_info() {
    return $this->hasOne('App\Models\Model', 'id', 'model_id')
                ->withDefault([
                    'name' => $this->attribute->name
                ]);
}

Нужно ли обновлять мой код во всех контроллерах и представлениях или, если есть более простой способ сделать это?

...