- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用关系作为标准的一部分来创建 CActiveDataProvider
。我有以下内容:
用户模型:
return array(
'favourites'=>array(self::HAS_MANY, 'UserFavourite', 'user_id', 'order'=>'added_at DESC'),
);
用户最喜欢的模型:
return array(
'user'=>array(self::BELONGS_TO, 'User', 'user_id'),
'listing'=>array(self::BELONGS_TO, 'Listing', 'listing_id'),
);
Controller (查看收藏夹操作):
$user = $this->loadUser(Yii::app()->user->id);
如何在我的用户模型中创建一个 CActiveDataProvider
以获取当前用户的所有 favorites
- 以及相关的 listing
模型数据每个最爱?所以我想做一些类似 $favourites = $user->getFavourites();
的事情。
CActiveDataProvider
应该返回一个Listing
对象数组。它应该支持分页和排序——默认排序将是 added_at DESC
。
我已经尝试使用 CDbCriteria
的 with
选项,但这似乎不起作用......
最佳答案
你没有提供你的数据库模式,但我想这段代码可以工作,
$criteria=new CDbCriteria();
$criteria->with=array('favourites'=>array('with'=>'listing'));
$dataProvider= new CActiveDataProvider('User', array(
'criteria'=>$criteria,
'sort'=>array(
'defaultOrder'=>'t.added_at DESC',
)));
请确保您的关系正确且符合架构。
事实上,如果你不关心查询的数量,你总是可以调用类似
的东西$user->收藏夹;
它将返回正确关系的正确数据,同样你可以这样做
为了,像这样通过listing模型去查看
foreach($user->favourites as $fav){
$this->renderPartial("PATH TO YOUR VIEW",array('data'=>$fav->listing));
}
请注意,一个用户可能有很多收藏夹,因此您需要使用 foreach ,除非您没有使用 CListview。另一种方法是使用 Clistview,在这种情况下您可能需要更改查询。让我知道这对您有何帮助。
关于php - Yii - CActiveDataProvider 使用关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25415327/
我跟着 Agile Web Application Development with Yii 1.1 and PHP5 ,从事“TrackStar”项目。对于我的生活,我无法理解我的问题在哪里。 我得
我在 Controller 的索引操作中有这些代码: public function actionIndex() { $cid = @$_GET['cid']; $country = Coun
我想使用 CActiveDataProvider 从表中检索所有数据。 但我想将它加入到其他表中。 第一个表(成员)包含:id、account_id 等 第二个表(table2)由:userid、it
在我的 Yii 项目中,我需要按一些自定义值搜索和排序数据。我有 'users' 表,我需要每个 User 实例都有 month_profit 属性,该属性应该结合 SQL 数据和我自己的大量计算。目
我对此有点难过。基本上我有两个表: 页面: 编号 姓名 积分: id- 页面id 积分 我想从 Page 表中获取记录,并根据它在 Points 表(点字段)中的点数对其进行排序 目前我有: $dat
我正在进行 YII 项目。我有 Production 表,其中有 category_id 和 brand_id 两列。现在我想做的是,只需使用 CActiveDataProvider 将这些特定行获取
我知道当 pagination 为 false 时,CActiveDataProvider 从单个查询中使用。所以我写了这段代码: $dependency = new CDbCacheDependen
所以,我对 yii 有点陌生,如果这听起来像是一个蹩脚的问题,我很抱歉,但我有一些奇怪的行为。我正在尝试加载带有评论的博文,但 actionView 仅返回博文: public functio
我想知道如何在 CActiveDataProvider criteria 上使用 UNION ALL。 表格示例: ID NAME 1 John 查询示例: SELECT * FROM
我现在正在一个杂志网站上工作,我在让 Yii 使用 CActiveDataProvider 返回所有数据时遇到了麻烦。 SQL 查询在通过 SQL 运行时运行良好,并且在 Yii 运行时我没有收到任何
我的代码: $criteria = new CDbCriteria(); // $criteria->select = array("id"); $criteria->with = array('u
我正在尝试从表中选择几行并将其呈现在多个页面中(分页)。这是模型中的一段代码: return new CActiveDataProvider('Downloads', array
我正在尝试使用关系作为标准的一部分来创建 CActiveDataProvider。我有以下内容: 用户模型: return array( 'favourites'=>array(sel
我想缓存 CActiveDataProvider 实例的数据库结果。 我在 Controller 的操作中准备数据提供者,然后在 CGridView 中使用数据提供者,稍后在某些 View 中使用。
我不明白如何在 CActiveDataProvider 中实现多对多关系。 起初的情况,我有一个模型“公司”具有以下关系: return array( 'owner' => a
我是 Yii 的新手,在运行小部件时出现错误“找不到类 'app\controllers\CActiveDataProvider'”。 这是我的代码: 模型/工业.php: array(
我是 Yii 的新手,在运行小部件时出现错误“找不到类 'app\controllers\CActiveDataProvider'”。 这是我的代码: 模型/工业.php: array(
我有 4 个数据库表: 用户:id、用户名、密码 楼层:id, userid, name 房间:id,楼层,名字 学生:id, room, name, active 如何为后续的 SQL 命令返回 C
我从 yii 开始,在尝试使用条件过滤 CActiveDataProvider 时遇到了一些麻烦。 这是我的数据库模型: Table Columns Project
我有一个表结构如下: CREATE TABLE IF NOT EXISTS `CustomValue` ( `id` int(11) NOT NULL, `customFieldId` int
我是一名优秀的程序员,十分优秀!