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

How to get data from database by parameters in yii2?

我有 2 个数据库表:

用户

id | name

留言

id | sender_id | receiver_id

如何生成自定义视图并通过 sender_idreceiver_id 获取数据?我的意思是当用户登录时,他会看到他的收件箱和发件箱消息。请解释这其中的逻辑。如果您能提供代码示例,我也会很高兴,因为我是 php 和 yii2 的新手。如果有不明白的地方我再具体解释一下。

你的细节真的很短,但我假设你想通过将当前用户 ID(登录用户)与 receiver_idsender_id 匹配并显示它们来显示传入和发送的消息在网格视图中。

一种方法可以是:

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 时捕捉这种情况。