Php can';当var_dump显示时,不返回一条记录

Php can';当var_dump显示时,不返回一条记录,php,yii,Php,Yii,我不能归还我的模型。但是当我返回var\u dump($model)时,我可以看到记录。那么为什么我不能返回$model?我没有看到任何错误,它只是显示了一个空白部分 我有一个小部件: $model = Table::model()->something1(); $id =Yii::app()->request->getQuery('id'); if($model==null){ $model = new Table; if (isse

我不能归还我的模型。但是当我
返回var\u dump($model)
时,我可以看到记录。那么为什么我不能
返回$model
?我没有看到任何错误,它只是显示了一个空白部分

我有一个小部件:

$model = Table::model()->something1();           
 $id =Yii::app()->request->getQuery('id');

if($model==null){
    $model = new Table;
    if (isset($_POST['Table'])){
        $model->attributes = $_POST['Table'];                   
        $model->product_id = $product_id;
        $model->user_id = Yii::app()->user->user_id;
        $model->save();
    }
}else {
    $m = Table::model()->something2($id);
    //return var_dump($m[0]); I just want one record
    //I also tried just getting $model, doesn't work   
    //I just want to get the model if it's there is a record
    return $m;
}

        $this->renderFile(Yii::getPathOfAlias('app.some.path'). '/_form.php',array(
                'model' => $model,
        ));
以下是我的模型:

public function something1(){
$uid = Yii::app()->user->user_id;
$id =Yii::app()->request->getQuery('id');

$criteria = new CDbCriteria;
$criteria->compare('user_id',$uid);
$criteria->compare('product_id',$id);
$criteria->limit = 1;

$record = $this->exists($criteria);
return $record;
}

您的模型函数
something1()
返回一个布尔值而不是记录,因为您调用的是
exists()
而不是
find()

作为替代方案,您也可以按如下方式编写整个函数:

public function something1() {
    return $this->findByAttributes(array('user_id' => Yii::app()->user->id, 
       'product_id' => Yii::app()->request->getQuery('id')));
} 
我想你的意思是:$this->find($criteria),而不是“exists”。它只是检查一行是否存在并返回布尔值,而不是记录。