Yii PHP - Propriété n'est pas définie
Je suis de la gestion d'un site web construit sur la Yii Framework et très aléatoire commencé à obtenir l'erreur ci-dessous. Pas exactement comment ou pourquoi cela a commencé depuis la source n'a pas été toucher.
Reconnaissant de toute aide. Merci!
CException
Description
Property "feature.mobile_hero_img" is not defined.
Source File
/data/www.zoomiezoom.com/yii/framework/db/ar/CActiveRecord.php(106)
00094: */
00095: public function __get($name)
00096: {
00097: if(isset($this->_attributes[$name]))
00098: return $this->_attributes[$name];
00099: else if(isset($this->getMetaData()->columns[$name]))
00100: return null;
00101: else if(isset($this->_related[$name]))
00102: return $this->_related[$name];
00103: else if(isset($this->getMetaData()->relations[$name]))
00104: return $this->getRelated($name);
00105: else
00106: return parent::__get($name);
00107: }
00108:
00109: /**
00110: * PHP setter magic method.
00111: * This method is overridden so that AR attributes can be accessed like properties.
00112: * @param string property name
00113: * @param mixed property value
00114: */
00115: public function __set($name,$value)
00116: {
00117: if($this->setAttribute($name,$value)===false)
00118: {
Stack Trace
#0 /data/www.zoomiezoom.com/yii/framework/db/ar/CActiveRecord.php(106): CComponent->__get('mobile_hero_img')
#1 /data/www.zoomiezoom.com/yii/framework/web/helpers/CHtml.php(1624): CActiveRecord->__get('mobile_hero_img')
#2 /data/www.zoomiezoom.com/yii/framework/web/helpers/CHtml.php(1100): CHtml::activeInputField('text', Object(feature), 'mobile_hero_img', Array)
#3 /data/www.zoomiezoom.com/protected/views/feature/_form.php(74): CHtml::activeTextField(Object(feature), 'mobile_hero_img', Array)
#4 /data/www.zoomiezoom.com/yii/framework/web/CBaseController.php(119): require('/data/www.theax...')
#5 /data/www.zoomiezoom.com/yii/framework/web/CBaseController.php(88): CBaseController->renderInternal('/data/www.theax...', Array, true)
#6 /data/www.zoomiezoom.com/yii/framework/web/CController.php(732): CBaseController->renderFile('/data/www.theax...', Array, true)
#7 /data/www.zoomiezoom.com/protected/views/feature/create.php(14): CController->renderPartial('_form', Array)
#8 /data/www.zoomiezoom.com/yii/framework/web/CBaseController.php(119): require('/data/www.theax...')
#9 /data/www.zoomiezoom.com/yii/framework/web/CBaseController.php(88): CBaseController->renderInternal('/data/www.theax...', Array, true)
#10 /data/www.zoomiezoom.com/yii/framework/web/CController.php(732): CBaseController->renderFile('/data/www.theax...', Array, true)
#11 /data/www.zoomiezoom.com/yii/framework/web/CController.php(671): CController->renderPartial('create', Array, true)
#12 /data/www.zoomiezoom.com/protected/controllers/FeatureController.php(71): CController->render('create', Array)
#13 /data/www.zoomiezoom.com/yii/framework/web/actions/CInlineAction.php(32): FeatureController->actionCreate()
#14 /data/www.zoomiezoom.com/yii/framework/web/CController.php(300): CInlineAction->run()
#15 /data/www.zoomiezoom.com/yii/framework/web/filters/CFilterChain.php(129): CController->runAction(Object(CInlineAction))
#16 /data/www.zoomiezoom.com/yii/framework/web/filters/CFilter.php(41): CFilterChain->run()
#17 /data/www.zoomiezoom.com/yii/framework/web/CController.php(983): CFilter->filter(Object(CFilterChain))
#18 /data/www.zoomiezoom.com/yii/framework/web/filters/CInlineFilter.php(59): CController->filterAccessControl(Object(CFilterChain))
#19 /data/www.zoomiezoom.com/yii/framework/web/filters/CFilterChain.php(126): CInlineFilter->filter(Object(CFilterChain))
#20 /data/www.zoomiezoom.com/yii/framework/web/CController.php(283): CFilterChain->run()
#21 /data/www.zoomiezoom.com/yii/framework/web/CController.php(257): CController->runActionWithFilters(Object(CInlineAction), Array)
#22 /data/www.zoomiezoom.com/yii/framework/web/CWebApplication.php(320): CController->run('create')
#23 /data/www.zoomiezoom.com/yii/framework/web/CWebApplication.php(120): CWebApplication->runController('feature/create')
#24 /data/www.zoomiezoom.com/yii/framework/base/CApplication.php(135): CWebApplication->processRequest()
#25 /data/www.zoomiezoom.com/public_html/admin_tae/index.php(13): CApplication->run()
#26 {main}
schéma pour feature.php
<?php
class feature extends CActiveRecord
{
/**
* The followings are the available columns in table 'feature':
* @var integer $id
* @var integer $feature_name_id
* @var string $display_name
* @var integer $language_id
* @var string $long_blurb
* @var string $short_blurb
* @var string $subhead_text
* @var string $hero_img
* @var string $mobile_hero_img
* @var string $thumb_sm
* @var string $thumb_md
* @var string $thumb_lg
* @var string $link_url
* @var string $link_image
* @var string $link_text
* @var string $buyit_id
* @var string $seo_text
* @var string $meta_description
* @var string $meta_keywords
* @var integer $category_id
* @var integer $sub_cat_id
* @var string $deep_link
* @var string $tracking_id
* @var integer $weight
* @var integer $initial_rating
* @var string $active
* @var string $created
* @var string $modified
*/
/**
* Returns the static model of the specified AR class.
* @return CActiveRecord the static model class
*/
public static function model($className=__CLASS__)
{
return parent::model($className);
}
/**
* @return string the associated database table name
*/
public function tableName()
{
return 'feature';
}
/**
* @return array validation rules for model attributes.
*/
public function rules()
{
//NOTE: you should only define rules for those attributes that
//will receive user inputs.
return array(
array('feature_name_id', 'required'),
array('feature_name_id, language_id, category_id, sub_cat_id, weight, initial_rating', 'numerical', 'integerOnly'=>true),
array('active', 'length', 'max'=>1),
array('display_name, long_blurb, short_blurb, subhead_text, page_title, hero_img, mobile_hero_img, thumb_sm, thumb_md, thumb_lg, link_url, link_image, link_text, buyit_id, seo_text, meta_description, meta_keywords, deep_link, tracking_id, created', 'safe'),
);
}
/**
* @return array relational rules.
*/
public function relations()
{
//NOTE: you may need to adjust the relation name and the related
//class name for the relations automatically generated below.
//'VarName'=>array('RelationType', 'ClassName', 'ForeignKey', ...additional options)
return array(
'feature_name' => array(self::BELONGS_TO, 'feature_name', 'feature_name_id', 'alias'=>'feature_name'),
'language' => array(self::BELONGS_TO, 'language', 'language_id', 'on'=>'t.language_id = language.id', 'alias'=>'language'),
'category' => array(self::BELONGS_TO, 'category', 'category_id', 'alias'=>'category'),
'sub_cat' => array(self::BELONGS_TO, 'sub_cat', 'sub_cat_id'),
'language_r' => array(self::BELONGS_TO, 'language', 'language_id', 'alias'=>'language'),
);
}
/**
* @return array Named Scopes.
*/
public function scopes()
{
return array(
'active'=>array(
'condition' => 't.active="y"',
'order' => 'feature_name.type_id DESC, category_id, sub_cat_id, t.weight ASC',
),
);
}
/**
* @return array customized attribute labels (name=>label)
*/
public function attributeLabels()
{
return array(
'id' => 'Id',
'feature_name_id' => 'Feature Name ID',
'display_name' => 'Display Name',
'language_id' => 'Language',
'long_blurb' => 'Main Description',
'short_blurb' => 'Short Blurb',
'subhead_text' => 'Subhead Text',
'page_title' => 'Browser Title',
'hero_img' => 'Hero Img',
'mobile_hero_img' => 'Mobile Hero Img',
'thumb_sm' => 'Small Thumbnail',
'thumb_md' => 'Medium Thumbnail ',
'thumb_lg' => 'Large Thumbnail',
'link_url' => 'CTA Link Url',
'link_image' => 'CTA Link Image',
'link_text' => ' CTA Link Text',
'buyit_id' => ' BuyIt Link Product ID',
'seo_text' => 'SEO Copy',
'meta_description' => 'Meta Description',
'meta_keywords' => 'Meta Keywords',
'category_id' => 'Category',
'sub_cat_id' => 'Sub Category',
'deep_link' => 'Deep Link',
'tracking_id' => 'Tracking ID',
'weight' => 'Weight',
'initial_rating' => 'Initial Rating',
'active' => 'Active',
'created' => 'Created Date',
'modified' => 'Modified Date',
);
}
}
Vous devez vous connecter pour publier un commentaire.
Ici est votre indice :
Vous êtes pointant vers un champ en fonction de votre modèle qui n'existe pas.
Il est là dans le modèle. Est est dans la table de fonction, et sont vous pointant vers le bon modèle dans la forme.
Je devine que vous essayez d'accéder à une propriété d'un modèle qui s'étend CActiveRecord.
Cela signifie que:
Soit vous AVAIT défini cette propriété (mobile_hero_img) et maintenant il est retiré
OU
Vous avez modifié le schéma de la base par la suppression d'une colonne (mobile_hero_img) à partir d'une table (la table que votre modèle de classe se rapporte à l').
Il ressemble à un problème de votre champ DB.
Avez-vous d'ajouter un nouveau champ de saisie "mobile_hero_img" dans le formulaire de sans ajouter le champ dans la base de données? Veuillez fournir le schéma de votre "fonction" de la table.
Pour tout le monde aux prises avec "la Propriété n'est pas définie" en question, j'ai une suggestion: vérifier votre modèle est
rules()
définition et le cadre de version, car il y a un bug introduit dans Yii (1.1.16) ce qui conduit à cette erreur, si il y a de l'espace supplémentaire à la fin des attributs de la liste:C'est corrigé dans la Yii 1.1.17.
La "Propriété n est pas défini" problème peut également se produire si vous avez réglé (texte) type d'un champ et dans votre modèle, tandis que la définition d'une propriété, vous avez peut-être défini comme un booléen ou un entier.
Par exemple, le ci-dessous est faux pour le texte de la propriété type.
La bonne définition sera
Parfois, il y a une petite erreur qui prend des heures à tracer.
J'ai eu un problème identique. Tout était parfait dans la classe du Modèle, mais le problème est toujours sur. Redémarrer le server ou SQL n'aide pas. Enfin, j'ai effacer le protégé/runtime/cachexxxx.fichier de base de données, puis tout fonctionne bien.
J'ai modifié les tables avec migrer fichier, et parfois a reçu l'erreur alors peut-être que quelque chose est mixte.