php - 登录用户的 Yii 私钥

标签 php mysql yii

我的应用程序在 1 个数据库中有 2 个表。一个称为 USER(id、uname、pw、role),另一个称为文件的 USERZ(id、files、USER_id、name)。 两个表都存在 HAS_MANY 和 BELONGS_To 关系。

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

我的 Controller 如下所示:

<?php
class SiteController extends Controller
{
  ...
    public function actionVerwal()
    {   
        $model=new USER;
        $model2=new USERZ;
        $this->render('verwal',array('model'=>$model,'model2'=>$model2));
    }
 ...
}

我的 View verwal.php:

<?php
$dataProvider=new CActiveDataProvider($model2);
?>

<h1>List of Your Files<i></h1>

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$model2->a($model2->id)
    , 'columns'=>array(
        'id', 'zname', 'USER_id'
    )
));
  ...
?>

我的模型 USERZ 具有如下所示的功能:

public function a($id)
    {   $criteria=new CDbCriteria;
        $criteria->compare('USER_id', $id);
        return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
        ));
    }

所以我得到的是包含所有文件的列表。我不知道如何更改 USER_id 与登录用户的 ID 的比较,以便我可以获得正确的文件,而不是全部

最佳答案

嗯,$criteria->compare('USER_id', $id, true); 为什么在这里使用第三个参数?删除它或设置为 false。 它

$partialMatch whether the value should consider partial text match (using LIKE and NOT LIKE operators). Defaults to false, meaning exact comparison.

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

关于php - 登录用户的 Yii 私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28746309/

相关文章:

mysql - 将 bool 值 1/0 转换为是/否

php - 操作后 10 分钟更新数据库

php - 尝试在 yii 数据库中存储多个复选框的 id 时出错

twitter-bootstrap - Yii booster - renderPartial 弹出窗口的数据内容?

php - 为订单添加固定折扣值

php - Mysqli INSERT 命令后跟 UPDATE

php - 以相同方式播种的 rand() 会产生不同的结果

php - 在MySQL数据库中获取所有 "username"和 "id"并使用php进行拆分

mysql - mysql vb.net 出现错误

php - Yii2 安装使用 composer 报错