0
我有一個問題,我無法通過。Yii模型的誤區
我試圖像這樣顯示從關係表的信息:
$dataProvider = PartnerSite::model()->with('siteCommercials')->findAll("user_id=" . Yii::app()->user->id);
$this->render('index', array(
'dataProvider' => $dataProvider,
'allMoney' => 1
));
但在我看來,我看到了這個錯誤:
Relation "siteCommercials" is not defined in active record class "PartnerSite".
但事實是,我的模型有關係:
public function relations() {
return array(
'goesFromSites' => array(self::HAS_MANY, 'GoesFromSite', 'site_id'),
'user' => array(self::BELONGS_TO, 'User', 'user_id'),
'siteCommercials' => array(self::HAS_MANY, 'SiteCommercial', 'site_id'),
);
}
所以我的問題是。有什麼問題嗎?我無法得到它......只有一個模型存在很多問題... BeforeSave()不起作用,並且關係工作不正常。用戶關係工作得很好。 「模特」 的
全面上市:
<?php
abstract class BasePartnerSite extends GxActiveRecord {
public $siteCommercials = "oke";
public static function model($className=__CLASS__) {
return parent::model($className);
}
public function tableName() {
return '{{partner_site}}';
}
public static function label($n = 1) {
return Yii::t('app', 'PartnerSite|PartnerSites', $n);
}
public static function representingColumn() {
return 'site_name';
}
public function rules() {
return array(
array('site_name', 'required'),
array('user_id', 'numerical', 'integerOnly'=>true),
array('site_name', 'length', 'max'=>255),
array('id, site_name, user_id', 'safe', 'on'=>'search'),
);
}
public function relations() {
return array(
'goesFromSites' => array(self::HAS_MANY, 'GoesFromSite', 'site_id'),
'user' => array(self::BELONGS_TO, 'User', 'user_id'),
'siteCommercials' => array(self::HAS_MANY, 'SiteCommercial', 'site_id'),
);
}
public function pivotModels() {
return array(
);
}
public function attributeLabels() {
return array(
'id' => Yii::t('app', 'ID'),
'site_name' => Yii::t('app', 'Site Name'),
'user_id' => null,
'goesFromSites' => null,
'user' => null,
'siteCommercials' => null,
);
}
public function search() {
$criteria = new CDbCriteria;
$criteria->compare('id', $this->id);
$criteria->compare('site_name', $this->site_name, true);
$criteria->compare('user_id', $this->user_id);
return new CActiveDataProvider($this, array(
'criteria' => $criteria,
));
}
}
你確定名稱的文件和類的名稱匹配?這也是不同的WAMP和XAMP。在PartnerSite中的第二個資本(camelcase)可能會拋出一些東西... – 2013-02-19 09:21:47
是的,我確定該文件是這樣命名的。這首先,但重命名沒有做任何事情... – timofeiMih 2013-02-19 09:27:51
是你的PartnerSite c lass從BasePartnerSite類擴展? – wonde 2013-02-19 16:28:17