Мне нужен рефакторинг проекта, и у меня есть проблема. Ниже приведена старая рабочая модель, где столбец «active» находится в таблице «people». Мне нужно переместить «активный» столбец в таблицу «people_translations». У вас есть идея изменить scopeActive метод? Спасибо большое!Laravel - модификации модели
Старый рабочая модель:
class BaseModel extends Eloquent
{
public function scopeActive($query)
{
return $query->where($this->table . '.active', '=', 1);
}
}
class People extends BaseModel
{
protected $table = 'peoples';
protected $translationModel = 'PeopleTranslation';
}
class PeopleTranslation extends Eloquent
{
public $timestamps = false;
protected $table = 'peoples_translations';
}
Старые таблицы структура:
Table: peoples
id | type | date | active
-------------------------
7 | .... | ... | 1
Table: peoples_translations
id | people_id | language_id | name
-----------------------------------
1 | 7 | 1 | Ann
Старый запрос:
$ народов = \ Люди :: активный() -> получить();
Новые таблицы структуры:
Table: peoples
id | type | date
----------------
7 | .... | ...
Таблица: peoples_translations
id | people_id | language_id | name | active
--------------------------------------------
1 | 7 | 1 | Ann | 1
Я не понимаю, почему именно вам нужна дополнительная таблица. В каких отношениях «люди» и «народность»? hasOne? имеет много? – Tim
Тим, есть много языков для многих языков, поэтому hasMany – Paul