Psy*_*hoX 6 activerecord join yii
我正在尝试从多个表中获取数据并且我以此错误结束:SQL:SQLSTATE [42S22]:找不到列:1054'字段列表'中的未知列'p.firstname'
$criteria = new CDbCriteria;
$criteria->select = 'ohu_id, hash, p.firstname, p.surname, p.city, u.email AS Email';
$criteria->join = 'LEFT JOIN `profiles` p ON p.user_id = user_id';
$criteria->join = 'LEFT JOIN users u ON user_id = u.id';
$criteria->condition = 'offer_id = :oID';
$criteria->params = array(':oID' => $_GET['id']);
$model = MyModel::model()->findAll($criteria);
Run Code Online (Sandbox Code Playgroud)
谁知道我做错了什么?或者有更好的方法来获取相关数据?
Fel*_*ida 18
你犯了同样的错误.
您将使用第二个连接覆盖第一个连接,而不是附加第二个连接.
$criteria->join = "join ...."; //first join
$criteria->join .= "join ...."; //second join
Run Code Online (Sandbox Code Playgroud)
干杯
实际上它更好地使用一些像这样的"with"子句:
$criteria->with = array(
'profiles '=>array(
'select'=>'profiles.user_id',
'together'=>true
),
'users'=>array(
'select'=>'users.id',
'together'=>true
)
);
Run Code Online (Sandbox Code Playgroud)
您也可以在模型搜索CGridView DataProvider时使用它.