我正在管理一个建立在Yii框架上的网站,非常随机地开始得到下面的错误。不确定为什么会发生这种情况,因为源代码还没有被接触。
感谢你的帮助。谢谢!
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}
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',
);
}
}
7条答案
按热度按时间ve7v8dk21#
这是你的线索:
您正指向要素模型中不存在的字段。
它在模型中,在特征表中,你在表单中指向正确的模型了吗?
ycl3bljg2#
我猜您正在尝试访问扩展CActiveRecord的模型的属性。
这意味着:
您已经定义了此属性(移动的_hero_img),但现在已将其删除
或
您通过从表(模型类所关联的表)中删除列(移动的_hero_img)来更改数据库模式。
ni65a41a3#
这看起来像是你的数据库领域的问题。
您是否在表单中添加了新的输入字段“移动的_hero_img”,而没有将该字段添加到数据库中?请提供“feature”表的架构。
jdzmm42g4#
对于每个在“属性未定义”问题上挣扎的人,我有一个建议:检查你的模型的
rules()
定义和框架的版本,因为Yii(1.1.16)中引入了一个bug,如果属性列表的末尾有额外的空格,就会导致这个错误:这个问题在Yii 1.1.17中得到了解决。
gjmwrych5#
如果在定义属性时设置了字段的(文本)类型,并且在模型中将其定义为布尔值或整数,则也可能会出现“属性n未定义”问题。
例如,下面的文字类型属性是错误的。
正确的定义是
有时候,一个小错误需要几个小时才能被追踪到。
w3nuxt5m6#
我遇到了同样的问题。Model类中的一切都很完美,但问题仍然存在。重新启动服务器或SQL也无济于事。最后,我清除了protected/runtime/cachexxxx.db文件,然后一切都正常了。我用migrate文件修改了表,有时会出现错误,所以可能是混合了一些东西。
6yjfywim7#
当我升级到yii 1.1.17时,我的问题得到了解决
此致