Я использую собственный класс в моей программе, который может подключаться к нескольким таблицам как и когда мне нужно.Невозможно указать Model-> alias
Я пытаюсь создать новый экземпляр класса, и я могу передать другое имя таблицы и псевдоним через конструктор. Это работает для имени таблицы, но не устанавливает псевдоним модели, как следует в документации
Создание нового объекта. Класс, который инстанцирован является Списки
$lists = new Lists(null, 'list_musicians', null, null, 'Musician');
класса Конструктор
public function __construct($id = false, $table = null, $ds = null, $name = null, $alias) {
parent::__construct($id, $table, $ds, $name, $alias);
$this->virtualFields['full_name'] = sprintf(
'CONCAT(%s.first_name, " ", %s.last_name)', $this->alias, $this->alias
);
//debug($this->alias);die;
}
Это будет подключаться к таблице с именем «list_musicians» или любой другой таблице имя я прохожу в, но $alias
поле не получает назначен $this->alias
Если я переназначу псевдоним вручную, виртуальные поля не будут включены в тот же массив, что и результат, как указано в documentation. Псевдоним всегда Lists
Как установить псевдоним модели через конструктор?
Есть около 6 до 8 таблиц БД, что дом различных списков информации, что по большей части его случай идентификатора и имени Thats необходим, или ID и виртуального поле , Я не вижу причин иметь отдельные модели и представления для каждого из них, поскольку его общая функциональность и я пытаюсь сохранить проект DRY. Я надеюсь вызвать модель из любого контроллера, который мне нужен, чтобы создать список для соответствующего представления.Если то, что я хочу сделать, - это не хорошая практика MVC, каково решение, так как я думаю, что все отдельные пустые модели не нужны, это лишнее раздувание. –
Я не могу ответить, не зная схемы. Если все таблицы одинаковы, я бы спросил, почему вы не добавляете поле типа и не делаете его одной таблицей. ClassRegistry :: init() должен решить вашу проблему. – burzum