Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gridview Yi2创建视图以显示模型_Gridview_Grid_Yii2_Master Detail - Fatal编程技术网

Gridview Yi2创建视图以显示模型

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

我正试图在一个项目中实现demos.krajee.com/grid-demo,但是我在为细节视图创建网格时遇到了困难

它是一个网格,当使用扩展的expandRow功能时,我需要从id中的另一个表库获取所有相关记录(主-详细场景)

在控制器中,我有一个功能,可以很好地获取特定id的所有记录:

    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()。谢谢