如何通过加入yii创建标准

如何通过加入yii创建标准,yii,Yii,我必须填写表格,一个是profile,另一个是rating。 rating有一个字段profileid,它是profile.id的主键,还有一个带有评级值的字段。现在我想找到评级最高的字段并显示相应的配置文件。因为我是YII框架的新手,所以我在这方面遇到了麻烦。请帮我摆脱它。我正在做的事情描述如下 $topRage=new CDbCriteria(); $topRage->select="*"; $topRage->alias="t1"; $topRage->order="ra

我必须填写表格,一个是
profile
,另一个是
rating
rating
有一个字段
profileid
,它是
profile.id
的主键,还有一个带有评级值的字段。现在我想找到评级最高的字段并显示相应的配置文件。因为我是YII框架的新手,所以我在这方面遇到了麻烦。请帮我摆脱它。我正在做的事情描述如下

$topRage=new CDbCriteria();
$topRage->select="*";
$topRage->alias="t1";
$topRage->order="rateing DESC";
$topRage->join="JOIN `ratings` ON `profile`.`id` = `t1`.`profileId`";
$topRage->limit="1";
试试这个:

join='JOIN profile ON profile.id = t1.profileId';
如果您正在执行以下操作:
Ratings::model()->findAll($topRage)
,则已经在查询Ratings表,所以您需要与profile表联接

编辑:

对于echo,您需要执行以下操作:

$echo "Rating id: ".$rating->id."|&nbspProfile Id: ".$rating->profile->id."|&nbspProfile Name: ".$rating->profile->name."|&nbspRating: ".$rating->ratingvalue;
但不要忘记从控制器传递
$rating


您也可以使用
find($topRage)
而不是
findAll($topRage)
并删除
限制,但这只是做同样事情的另一种方式。

只需查询而不使用联接即可

$topRage=new CDbCriteria();
$topRage->select="*";
$topRage->alias="t1";
$topRage->order="rateing DESC";
$topRage->limit="1";

$rating=Ratings::model()->findAll($topRage);
$profile=Profile::model()->findByPk($rating->profileId);

有什么问题吗?你的代码很好,你到底想在哪里得到帮助?@bool.dev它不起作用,我想得到最高评级的个人资料,它的评级也是。两者都在不同的表和评级中profile@bool.dev我不知道它的显示错误是抛出新的CDBEException(Yii::t('Yii','CDbCommand未能执行SQL语句:{error}“,好的..它必须显示正在执行的sql语句,你能粘贴错误的那部分吗?它正在工作,所以现在我将如何回显配置文件的内容table@Bipin我已经编辑了我的答案,带有回音语句,请查看