php - Yii2在gridview中的多模型搜索
问题描述
我有 2 个模型“用户”和“用户配置文件”,我在列表页面上显示了数据。我想对模型“UserProfile”的字段“name_company”进行过滤,但我没有经验。帮帮我,谢谢大家。我的索引:
<?php
$gridColumns = [
['class' => 'kartik\grid\CheckboxColumn'],
[
'attribute' => 'username',
'value' => function($model){
return Helper::checkRoute('update') ? Html::a($model->username, ['update', 'id' => $model->id]) : $model->username;
},
'format'=>'raw',
'contentOptions' => [ 'style' => 'width: 10%;' ],
],
...
[
'label' => 'Name_company',
'value' => function($model){
$query = $model->userProfile->name_company;
return $query;
},
'contentOptions' => [ 'style' => 'width: 15%;' ],
],
...
],
];
echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'options' => [ 'style' => 'table-layout:fixed;' ],
'columns' => $gridColumns,
]);
?>
我的控制器:
public function actionIndex()
{
$searchModel = new UserSearch();
$dataProvider = $searchModel->searchContractorUser(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
我的模型搜索,我有模型搜索“用户”:
public function searchContractorUser($params)
{
$query = User::find()->join('LEFT JOIN','rbac_auth_assignment','rbac_auth_assignment.user_id = id')
->where(['rbac_auth_assignment.item_name' => 'user-contractor']);
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
if (!($this->load($params) && $this->validate())) {
return $dataProvider;
}
$query->andFilterWhere([
'id' => $this->id,
'status' => $this->status,
]);
$query->andFilterWhere(['like', 'username', $this->username])
->andFilterWhere(['like', 'auth_key', $this->auth_key])
->andFilterWhere(['like', 'password_hash', $this->password_hash])
->andFilterWhere(['like', 'email', $this->email]);
return $dataProvider;
}
解决方案
推荐阅读
- android - 当应用程序被终止时并在后台使用 FusedLocationProviderClient 和挂起的 Intent 但在不规则时间获取位置
- amazon-web-services - AWS VPC VPN IPsec 到客户网关
- matlab - MATLAB:访问单元格列时,此类型的变量不支持点索引
- c++ - 在光线追踪中为对象着色
- python - 为 Lambda *编译 * Python3 是一个好习惯吗?
- android - android平台OpenSSL 1.1.1源码编译
- reactjs - 在 kurento 上创建空间时,套接字连接越来越近
- ruby-on-rails - 使用单个字符串从哈希中获取嵌套值
- node.js - Angular2+:实现简单文件上传的最简单方法是什么?我的代码非常不工作
- python - Pytorch 3-GPU,只能用其中 2 个来训练