如何通过yii2中的参数从数据库中获取数据?

时间:2016-08-03 09:23:45

标签: php database yii2 message

我有2个数据库表:

用户

id | name

消息

id | sender_id | receiver_id

如何生成自定义视图并按sender_idreceiver_id获取数据?我的意思是,当用户登录时,他将看到他的收件箱和发件箱消息。请解释一下这个的逻辑。如果你提供代码示例,我也会很高兴,因为我是php和yii2的新手。如果某些事情不可理解,我会更具体地解释。

1 个答案:

答案 0 :(得分:0)

您的确非常缺乏细节,但我认为您希望通过将当前用户ID(登录用户)与receiver_idsender_id相匹配来显示传入和发送的消息,并将其显示在gridview的。

方法可以是:

public function actionIndex()
{
    $user = Yii::$app->user->identity;

    $searchModel = new MesssageSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

    // filter on ownership of either sender or receiver
    $dataProvider
        ->query
        ->andWhere(['receiver_id' => $user->id])
        ->orWhere(['sender_id' => $user->id]);

    $dataProvider->setSort([
        'defaultOrder' => ['created_at' => SORT_DESC],
    ]);

    return $this->render('index', [
        'searchModel' => $searchModel,
        'dataProvider' => $dataProvider,
    ]);
}

这假设您对登录用户的访问权限有限,否则您需要在Yii::$app->usernull时抓住案例。