with = array('u-6ren">
gpt4 book ai didi

php - Yii CActiveDataProvider 数据未从连接表加载

转载 作者:行者123 更新时间:2023-11-29 03:01:13 25 4
gpt4 key购买 nike

我的代码:

$criteria = new CDbCriteria();

// $criteria->select = array("id");

$criteria->with = array('userProfiles'=>array(
'select'=>'firstname'
));
$criteria->together = true;

$criteria->condition = "firstname like '%$q%' "
. "and (user_id not in (select id2 from friends where id1=$user_id) "
. "and user_id not in (select id1 from friends where id2=$user_id))";

$dataProvider = new CActiveDataProvider("Users", array(
'criteria' => $criteria
));

return $dataProvider;

注意事项:

1- userProfiles 关系在用户模块中定义

问题:

尽管提供了选择属性 'select'=>'firstname',但它仅从 User 表而不是 user_profiles 表加载数据

我想要来自 useruserProfile 表的数据。

最佳答案

关系 self::HAS_ONE 不能和主查询一起执行,尝试使用 join

$criteria->select = "*, user_profiles.firstname 名字";$criteria->join = 'user_profiles ON user_profiles.user_id = users.id';

类似这样,但您应该在用户 AR 中创建名字字段以检索它。

或者更改与 HAS_MANY 的关系并检查数组的第一个实体。

together :与此关系关联的表是否应强制与主表和其他表连接在一起。此选项仅对 HAS_MANY 和 MANY_MANY 关系有意义。

因为你不能写出每条加入记录只给你一条记录的查询

SELECT * FROM main
INNER JOIN slave ON (slave.main_id = main.id limit 1) // will not work);

关于php - Yii CActiveDataProvider 数据未从连接表加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23340650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com