在我的控制器中
$agent = University::model()->findByPK($university_id);
我希望它会返回一行值的值。
我想要一个单一属性(field3)值university_name
,(不使用findByPK),如何获取
SELECT field3 FROM table [WHERE Clause]
答案 0 :(得分:8)
试试这个
$usercriteria = new CDbCriteria();
$usercriteria->select = "university_name";
$usercriteria->condition = "university_id=$university_id";
$university = University::model()->findAll($usercriteria);
echo $university->university_name;
或者只是像你先做的那样
$agent = University::model()->findByPK($university_id);
echo $agent-> university_name;
答案 1 :(得分:5)
$agent = University::model()->findByPK($university_id);
echo $agent->university_name;
答案 2 :(得分:3)
应该是这样的:
$agent = University::model()->findByPK($university_id)->university_name;
答案 3 :(得分:1)
尝试一下:
$university_name = University::model()->findByPK($university_id, array('select'=>'univeersity_name'))->university_name;
#Query: SElECT university_name FROM table_name where id=x;
代替
$university_name = University::model()->findByPK($university_id)->university_name;
#Query: SElECT * FROM table_name where id=x;
第二个查询返回所有字段。因此最好避免那些字段是不必要的。
答案 4 :(得分:0)
如果您需要查看yii _views,我已在我的项目中实现了这一点 我把它放在我的'_view.php'里面/ protected / views / myTable /
$agent = University::model()->findByPK($data->id_university/*this is the PK field name*/);
echo $agent->university_name /*university field name*/;
再次抱歉我的英语不好:o
答案 5 :(得分:0)
可以这样做:
$agent = University::model()->findAllByAttributes(array('field3'),"WHERE `id` = :id", array(':id' => $university_id));
findByAttributes的第一个参数是您希望它返回的属性数组。如果留空,则返回全部(*)。