Столкнулся с тем, что не понимаю, где закралась ошибка.
Есть модель FilesDetails:
class FilesDetails extends CActiveRecord
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return '{{FilesDetails}}';
}
public function relations()
{
return array(
'mFile'=>array(self::BELONGS_TO,'Files','fid','select'=>'datpost,playtime,filesize,filename'),
'userDetails'=>array(self::BELONGS_TO,'UserDetails','uid','select'=>'name'),
);
}
}
Делаю поиск:
$work=FilesDetails::model()->findByAttributes(
array(
'id'=>Yii::app()->request->getQuery('id'),
'uid'=>Yii::app()->user->getId()
)
);
И получаю следующее:
[trace] [system.caching.CFileCache] Serving "yii:dbschemamysql:host=localhost;dbname=admin_nrs:admin_nrs:{{FilesDetails}}" from cache
[trace] [system.db.ar.CActiveRecord] FilesDetails.findByAttributes()
[trace] [system.db.CDbCommand] Querying SQL: SELECT * FROM `rs_FilesDetails` `t` WHERE `t`.`id`=:yp0 AND `t`.`uid`=:yp1 LIMIT 1. Bound with :yp0='24', :yp1='1'
[profile] [system.db.CDbCommand.query] begin:system.db.CDbCommand.query(SELECT * FROM `rs_FilesDetails` `t` WHERE `t`.`id`=:yp0 AND `t`.`uid`=:yp1 LIMIT 1. Bound with :yp0='24', :yp1='1')
[profile] [system.db.CDbCommand.query] end:system.db.CDbCommand.query(SELECT * FROM `rs_FilesDetails` `t` WHERE `t`.`id`=:yp0 AND `t`.`uid`=:yp1 LIMIT 1. Bound with :yp0='24', :yp1='1')
Добавляю: with(‘mFile’)->together()->
$work=FilesDetails::model()->with('mFile')->together()->findByAttributes(
array(
'id'=>Yii::app()->request->getQuery('id'),
'uid'=>Yii::app()->user->getId()
)
);
И получаю два сгенерированных запроса:
[trace] [system.caching.CFileCache] Serving "yii:dbschemamysql:host=localhost;dbname=admin_nrs:admin_nrs:{{FilesDetails}}" from cache
[trace] [system.db.ar.CActiveRecord] FilesDetails.findByAttributes()
[trace] [system.caching.CFileCache] Serving "yii:dbschemamysql:host=localhost;dbname=admin_nrs:admin_nrs:{{Files}}" from cache
[trace] [system.db.CDbCommand] Querying SQL: SELECT t.id AS t0_c0, t.uid AS t0_c1, t.fid AS t0_c2, t.datpost AS t0_c3, t.viewed AS t0_c4, t.allowComment AS t0_c5, t.statusConvert AS t0_c6, t.statusFile AS t0_c7, t.getsec AS t0_c8, t.year AS t0_c9, t.typ AS t0_c10, t.name_ru AS t0_c11, t.name_en AS t0_c12, t.preview AS t0_c13, t.tags AS t0_c14, t.comment AS t0_c15, mFile.datpost AS t1_c1, mFile.playtime AS t1_c2, mFile.filesize AS t1_c3, mFile.filename AS t1_c4, mFile.id AS t1_c0 FROM rs_FilesDetails t LEFT OUTER JOIN rs_Files mFile ON (t.fid=mFile.id) WHERE (t.id=:yp0 AND t.uid=:yp1). Bound with :yp0='24', :yp1='1'
[profile] [system.db.CDbCommand.query] begin:system.db.CDbCommand.query(SELECT t.id AS t0_c0, t.uid AS t0_c1, t.fid AS t0_c2, t.datpost AS t0_c3, t.viewed AS t0_c4, t.allowComment AS t0_c5, t.statusConvert AS t0_c6, t.statusFile AS t0_c7, t.getsec AS t0_c8, t.year AS t0_c9, t.typ AS t0_c10, t.name_ru AS t0_c11, t.name_en AS t0_c12, t.preview AS t0_c13, t.tags AS t0_c14, t.comment AS t0_c15, mFile.datpost AS t1_c1, mFile.playtime AS t1_c2, mFile.filesize AS t1_c3, mFile.filename AS t1_c4, mFile.id AS t1_c0 FROM rs_FilesDetails t LEFT OUTER JOIN rs_Files mFile ON (t.fid=mFile.id) WHERE (t.id=:yp0 AND t.uid=:yp1). Bound with :yp0='24', :yp1='1')
[profile] [system.db.CDbCommand.query] end:system.db.CDbCommand.query(SELECT t.id AS t0_c0, t.uid AS t0_c1, t.fid AS t0_c2, t.datpost AS t0_c3, t.viewed AS t0_c4, t.allowComment AS t0_c5, t.statusConvert AS t0_c6, t.statusFile AS t0_c7, t.getsec AS t0_c8, t.year AS t0_c9, t.typ AS t0_c10, t.name_ru AS t0_c11, t.name_en AS t0_c12, t.preview AS t0_c13, t.tags AS t0_c14, t.comment AS t0_c15, mFile.datpost AS t1_c1, mFile.playtime AS t1_c2, mFile.filesize AS t1_c3, mFile.filename AS t1_c4, mFile.id AS t1_c0 FROM rs_FilesDetails t LEFT OUTER JOIN rs_Files mFile ON (t.fid=mFile.id) WHERE (t.id=:yp0 AND t.uid=:yp1). Bound with :yp0='24', :yp1='1')
[trace] [system.db.CDbCommand] Querying SQL: SELECT t.id AS t0_c0, mFile.datpost AS t1_c1, mFile.playtime AS t1_c2, mFile.filesize AS t1_c3, mFile.filename AS t1_c4, mFile.id AS t1_c0 FROM rs_FilesDetails t LEFT OUTER JOIN rs_Files mFile ON (t.fid=mFile.id) WHERE (t.id='24')
[profile] [system.db.CDbCommand.query] begin:system.db.CDbCommand.query(SELECT t.id AS t0_c0, mFile.datpost AS t1_c1, mFile.playtime AS t1_c2, mFile.filesize AS t1_c3, mFile.filename AS t1_c4, mFile.id AS t1_c0 FROM rs_FilesDetails t LEFT OUTER JOIN rs_Files mFile ON (t.fid=mFile.id) WHERE (t.id='24'))
[profile] [system.db.CDbCommand.query] end:system.db.CDbCommand.query(SELECT t.id AS t0_c0, mFile.datpost AS t1_c1, mFile.playtime AS t1_c2, mFile.filesize AS t1_c3, mFile.filename AS t1_c4, mFile.id AS t1_c0 FROM rs_FilesDetails t LEFT OUTER JOIN rs_Files mFile ON (t.fid=mFile.id) WHERE (t.id='24'))
И вот я никак не могу понять, почему у меня при использовании with(‘mFile’)->together()-> генерируется два запроса?
p.s. версия yii последняя из svn