@EVOSandru6

Как в Yii правильно наследовать модели?

Есть 2 таблицы - t_product и t_service , в них одинаковые поля: название, цена и т.д. Я создал модели и сгенерировал CRUD. Сделал так, вынес повторяющийся код в класс Craft.

class Craft extends CActiveRecord{ ....

И у меня вышло 2 аккуратненьких класса:

class Service extends Craft
{
    public $imagePath = 'images/service';
	public function tableName()
	{
		return 't_service';
	}
}

class Product extends Craft
{
    public $imagePath = 'images/product';
	public function tableName()
	{
		return 't_product';
	}
}


Но выходит такая ошибка : Таблица "Craft", упомянутая в записи active record класса "Craft", не найдена в базе данных. Я понимаю, что её нет, но не создавать же битую таблицу ради наследования идентичных сущностей. И Наследовать Product от Service тоже как то неправильно, подскажите специалисты, как быть?
  • Вопрос задан
  • 2780 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Nc_Soft
class Service extends Craft
{
  public $imagePath = 'images/service';

    public static function model($className = __CLASS__) 
    {
        return parent::model($className);
    }

  public function tableName()
  {
    return 't_service';
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы