Yii获取model()->findAll()结果,但不获取model()->find()结果

Yii获取model()->findAll()结果,但不获取model()->find()结果,yii,Yii,我有以下代码 $result = Department::model()->findAll('department_id=:department_id', array(':department_id'=>1)); $departments = chtml::listdata($result,'department_id', 'department_name'); 然后返回正确的结果。我知道我们可以使用find函数来获得一个结果,但是当我尝试以下代码

我有以下代码

    $result = Department::model()->findAll('department_id=:department_id', array(':department_id'=>1));         
    $departments = chtml::listdata($result,'department_id', 'department_name');
然后返回正确的结果。我知道我们可以使用find函数来获得一个结果,但是当我尝试以下代码时,返回的结果是NULL

    $result = Department::model()->find('department_id=:department_id', array(':department_id'=>1));            
    $departments = chtml::listdata($result,'department_id', 'department_name');
查找函数有什么问题


谢谢你

如果你想按id记录一条记录,请尝试

$result = Department::model()->findByPk($department_id, array(':department_id'=>1)); 
这将为您提供一条具有给定id的记录。

要求其第一个参数使用数组。findAll方法返回一个Department对象数组,这就是它按需要工作的原因。但是,“查找”仅返回单个部门对象

如果要强制listData方法处理find的结果,则需要首先将结果包装到数组中

$result = Department::model()->find('department_id=:department_id', array(':department_id'=>1));            
$departments = chtml::listdata(array($result),'department_id', 'department_name');
当然,使用listData完全不是必需的,尽管这取决于您实际要完成的任务。您还可以访问以下值:

$result = Department::model()->find('department_id=:department_id', array(':department_id'=>1));
echo $result->department_id;
echo $result->department_name;

你能分享一下findAll和find的具体结果吗?第一个代码findAll给出了以下结果数组[1]=>英文,但当我执行第二个方法finddepartment_id是primary key时为空?是的,我想知道find方法如何工作Joel说findAll是primary key,那么它将如何成为primary key?对不起,我知道这个方法,但我只是想知道如何使用find方法。谢谢