yii2如何通过参数从数据库中获取数据?
How to get data from database by parameters in yii2?
我有 2 个数据库表:
用户
id
| name
、
留言
id
| sender_id
| receiver_id
。
如何生成自定义视图并通过 sender_id
和 receiver_id
获取数据?我的意思是当用户登录时,他会看到他的收件箱和发件箱消息。请解释这其中的逻辑。如果您能提供代码示例,我也会很高兴,因为我是 php 和 yii2 的新手。如果有不明白的地方我再具体解释一下。
你的细节真的很短,但我假设你想通过将当前用户 ID(登录用户)与 receiver_id
和 sender_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->user
为 null
时捕捉这种情况。
我有 2 个数据库表:
用户
id
| name
、
留言
id
| sender_id
| receiver_id
。
如何生成自定义视图并通过 sender_id
和 receiver_id
获取数据?我的意思是当用户登录时,他会看到他的收件箱和发件箱消息。请解释这其中的逻辑。如果您能提供代码示例,我也会很高兴,因为我是 php 和 yii2 的新手。如果有不明白的地方我再具体解释一下。
你的细节真的很短,但我假设你想通过将当前用户 ID(登录用户)与 receiver_id
和 sender_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->user
为 null
时捕捉这种情况。