Gridview Yi2创建视图以显示模型
我正试图在一个项目中实现demos.krajee.com/grid-demo,但是我在为细节视图创建网格时遇到了困难 它是一个网格,当使用扩展的expandRow功能时,我需要从id中的另一个表库获取所有相关记录(主-详细场景) 在控制器中,我有一个功能,可以很好地获取特定id的所有记录:Gridview Yi2创建视图以显示模型,gridview,grid,yii2,master-detail,Gridview,Grid,Yii2,Master Detail,我正试图在一个项目中实现demos.krajee.com/grid-demo,但是我在为细节视图创建网格时遇到了困难 它是一个网格,当使用扩展的expandRow功能时,我需要从id中的另一个表库获取所有相关记录(主-详细场景) 在控制器中,我有一个功能,可以很好地获取特定id的所有记录: public function actionDetail() { $searchModel = new AttendanceSearch(); $dataProvider = $sea
public function actionDetail() {
$searchModel = new AttendanceSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
if (isset($_POST['expandRowKey'])) {
$IDcustomers = Yii::$app->request->post('expandRowKey');
$model = Attendance::find()
->where(['IDcustomers' => $IDcustomers])
->all();
return $this->renderPartial('_attendance-details', ['model'=>$model]);
} else {
return '<div class="alert alert-danger">No data found</div>';
}
}
public function actionDetail(){
$searchModel=新的AttendanceSearch();
$dataProvider=$searchModel->search(Yii::$app->request->queryParams);
如果(isset($_POST['expandRowKey'])){
$IDcustomers=Yii::$app->request->post('expandRowKey');
$model=考勤::查找()
->其中(['IDcustomers'=>$IDcustomers])
->全部();
返回$this->renderPartial(“'u attention-details',['model'=>$model]);
}否则{
返回“未找到数据”;
}
}
现在的问题是如何从$model创建视图(_attention-details),并将所有记录显示在网格中
如果将DetailView与$model的第一个元素一起使用,则效果良好:
<?= DetailView::widget([
'model' => $model[0],
'attributes' => [
'IDattendance',
'IDcustomers',
'date',
'doctor',
'lawyer',
],
]) ?>
但是当我尝试使用网格时,我需要数据提供者,而我无法使它与我正在传递的$model一起工作
我是yii的新手,所以任何导游都将不胜感激
我在
controller
set中尝试了vitalik并完美地工作:
public function actionDetail()
{
if (isset($_POST['expandRowKey'])) {
$IDcustomers = Yii::$app->request->post('expandRowKey');
$model = Attendance::find()
->where(['IDcustomers' => $IDcustomers]);
$dataProvider = new ActiveDataProvider([
'query' => $model,
'pagination' => [
'pageSize' => 20,
],
]);
return $this->renderPartial('_attendance-details', ['dataProvider' => $dataProvider]);
} else {
return '<div class="alert alert-danger">No data found</div>';
}
}
public function actionDetail()
{
如果(isset($_POST['expandRowKey'])){
$IDcustomers=Yii::$app->request->post('expandRowKey');
$model=考勤::查找()
->其中(['IDcustomers'=>$IDcustomers]);
$dataProvider=新的ActiveDataProvider([
“查询”=>$model,
“分页”=>[
“页面大小”=>20,
],
]);
返回$this->renderPartial(“'u attention-details',['dataProvider'=>$dataProvider]);
}否则{
返回“未找到数据”;
}
}
鉴于:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'IDattendance',
'IDcustomers',
'date',
'doctor',
'lawyer',
],
]);?>
Hi vitalik谢谢你回答这件事,真让我抓狂。您确定可以将模型传递给activeDataProvider的查询元素。我做不到是的,这是工作。请参阅文档-如果在应用程序中不起作用。请向您发送当前的控制器
和视图
它工作正常,我没有使用:yii\data\ActiveDataProvider;然后我继续尝试查找中的all()。谢谢