如何在yii中的findbyPk()方法中获取单个值?

如何在yii中的findbyPk()方法中获取单个值?,yii,Yii,在我的控制器中 $agent = University::model()->findByPK($university_id); 我希望它将返回一行值的值。 我想要一个单一属性(field3)值,比如说university\u name,(不使用findByPK),如何获取它 SELECT field3 FROM table [WHERE Clause] 试试这个 $usercriteria = new CDbCriteria(); $usercriteria->select =

在我的控制器中

$agent = University::model()->findByPK($university_id);
我希望它将返回一行值的值。 我想要一个单一属性(field3)值,比如说
university\u name
,(不使用findByPK),如何获取它

SELECT  field3 FROM table [WHERE Clause]
试试这个

$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;

如果您需要查看yii_视图,我已经在我的项目中实现了这一点 我把它放在我的“_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

应该是这样的:

$agent = University::model()->findByPK($university_id)->university_name;
$agent = University::model()->findAllByAttributes(array('field3'),"WHERE `id` = :id", array(':id' => $university_id));

可以这样做:

$agent = University::model()->findByPK($university_id)->university_name;
$agent = University::model()->findAllByAttributes(array('field3'),"WHERE `id` = :id", array(':id' => $university_id));
FindByatAttributes的第一个参数是您希望它返回的属性数组。如果保留为空,则返回所有(*)。

尝试以下操作:

$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;

第二个查询返回所有字段。所以最好避免使用这些字段。

我得到的是:尝试获取非对象的属性。这意味着什么?如果您使用的是第一个,请将
findAll
替换为
find