Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii已登录用户的私钥_Php_Mysql_Yii - Fatal编程技术网

Php Yii已登录用户的私钥

Php Yii已登录用户的私钥,php,mysql,yii,Php,Mysql,Yii,我的应用程序在1db中有2个表。一个称为USER(id,uname,pw,role),另一个称为USERZ(id,files,USER_id,name),用于文件。 这两个表都有一个HAS\u MANY并属于\u的关系 我可以看到显示用户和所有文件。但我要做的是只查看每个用户的文件(因此id=1的用户无法查看id=2的用户的文件) 我的控制器如下所示: <?php class SiteController extends Controller { ... public func

我的应用程序在1db中有2个表。一个称为USER(id,uname,pw,role),另一个称为USERZ(id,files,USER_id,name),用于文件。 这两个表都有一个HAS\u MANY并属于\u的关系

我可以看到显示用户和所有文件。但我要做的是只查看每个用户的文件(因此id=1的用户无法查看id=2的用户的文件)

我的控制器如下所示:

<?php
class SiteController extends Controller
{
  ...
    public function actionVerwal()
    {   
        $model=new USER;
        $model2=new USERZ;
        $this->render('verwal',array('model'=>$model,'model2'=>$model2));
    }
 ...
}
public function a($id)
    {   $criteria=new CDbCriteria;
        $criteria->compare('USER_id', $id);
        return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
        ));
    }

所以我得到的是一个包含所有文件的列表。我不知道如何更改“仅将用户id与登录用户的id进行比较”,这样我就可以获得rigt文件,而不是所有文件(Hmmm,
$criteria->compare('USER\u id',$id,true))为什么在这里使用第三个参数?将其删除或设置为false。
其

部分匹配是否该值应考虑部分文本 匹配(使用LIKE和notlike运算符)。默认为false,表示 精确的比较


要在Yii中获取登录的用户id,可以使用
Yii::app()->user->getId()

我删除了它,这是我想测试的另一件东西留下的。但这并没有改变任何事情。感谢您的解释,我将--“数据提供者”=>$model2->a($model2->id)--更改为“数据提供者”=>$model2->a(Yii::app()->user->getId()),但现在没有匹配的id。。。我想这是因为如果我回显Yii::app()->user->getId(),我会得到idHmm的uname instad,它不应该如此。。。检查UserIdentity类并搜索保存到id($this->\u id)属性的内容。您是指在我的authenticate()方法中吗?--因为在我的UserIdentity.php中只有两个函数。第一个名为authenticate(),第二个名为getId()。
public function a($id)
    {   $criteria=new CDbCriteria;
        $criteria->compare('USER_id', $id);
        return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
        ));
    }