0
class SomeModel extends CActiveRecord
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return '{{some_table}}';
}
public function getItemByParentId($parentId)
{
$criteria=new CDbCriteria;
//some criteria
return self::model()->findAll($criteria);
}
}
Этот метод работает должным образом, когда я называю его от контроллера SomeModel :: модель() -> getItemByParentId ($ someVariable)Вложение CActiveRecord
Но теперь у меня есть 3 очень похож на SomeModel модели, так что я хочу поставить общие методы к одному классу
class CommonModel extends CActiveRecord
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function getItemByParentId($parentId)
{
$criteria=new CDbCriteria;
//some criteria
return self::model()->findAll($criteria);
}
}
class FirstModel extends CommonModel
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return '{{first_table}}';
}
}
class SecondModel extends CommonModel
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return '{{second_table}}';
}
}
Но получить ошибку
в таблице «CommonModel» для активного класс записи "CommonModel" не может найти в базе данных.
Что не так?
Я уже пытался, но получить «SomeController и его поведение не имеет метод или замыкание под названием„модель“:( – dr0zd
метода' getItemByParentId' вы должны размещенный в 'CommonModel', и от контроллера, используя: SecondModel :: model() -> getItemByParentId ($ id); – CreatoR
Да, это правильно. У меня то же самое. – dr0zd