나는 내 gridview의 체크 박스 값 필드에 필요한 값을 가져올 수 없다는 문제가있다. checkbox 필드는 선택하거나 선택을 취소 할 수 있습니다. Therfore에는 member라는 부울 필드가 있는데, 0이 체크되지 않고 1이 체크 된 데이터 그 리드 값입니다.
일반적으로 gridview에는 4 개의 열이 있습니다. 테스트 용으로 데이터베이스 테이블의 'member'열을 체크 박스 열 앞에 추가 필드로 출력하여 'member'테이블 열의 값이 올바른지 확인합니다.
보기에는 두 개의 서로 다른 dataProvdiders, $ dataProvider 및 $ dataProviderMembers가 있으므로 $ model 객체를 사용할 수 없습니다. $ model 객체는 $ dataProvider의 내용에 속합니다. dataviewgrid는 두 번째 dataprovider 인 $ dataProviderMembers로 채워집니다. $ dataProviderMembers에 대한
$searchModel = new PeriodeClassSubjectMembersSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$modelPeriodeClassSubjectMembers = new PeriodeClassSubjectMembers();
$dataProviderMembers = $modelPeriodeClassSubjectMembers->getPeriodeClassMembers($class_id, $periode_id, false);
$dataProviderMembers->key = 'id'; //set this to make the id column as value columns in the gridview for javascript getselectedrows instead of the gridrow number
return $this->render('viewmysubject', [
'model' => $this->findModel($id),
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'dataProviderMembers' => $dataProviderMembers
]);
모델 메도 :
<?= GridView::widget([
'dataProvider' => $dataProviderMembers,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'firstname',
'lastname',
'member',
['class' => 'yii\grid\CheckboxColumn', 'checkboxOptions' => function($model, $key, $index, $column){
return ['checked' => 'member'];
}, 'header' => 'Mitglied'
],
]
]); ?>
컨트롤러 메도이 방법
$query = new Query();
$query->select(..........);
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
return $dataProvider;
은 체크 박스 필드는 correkt 작성되지 않았습니다.
일반 체크 박스 필드는 구성원에 대한 값을 더 $ 모델이 없다이 경우 세그먼트
return ['checked' => $model->member};
에 의해 채워집니다. $ model은 $ dataProvider의 데이터에 속합니다.
하지만 $ dataProviderMembers의 멤버 값이 표시됩니다. DataGrid의 확인란 필드 앞에있는 'member'열에서 볼 수 있듯이 데이터베이스의 값이 모눈에 올바르게 채워집니다. $ model을 사용하지 않고 checkbox 필드를 채우려면 어떻게해야합니까? SQL 쿼리의 'member'열 ($ dataProviderMembers의 멤버 값)의 값이 뒤에 있습니까? DataProvider에 다음 checkboxOptions에 대한 익명 함수에서 $ 모델 PARAM은 회원이 그래서 당신은 값을 얻을 수있는 값이 포함되어야 모델을 관련 $ dataProviderMembers 같다 당신의 gridview에서
return ['checked' => 'member'];
스피 $를 사용하는 모델 -> m 보통의 경우에 작동하는이 위치에 ember가 있는데, '객체가 아닌 속성을 얻으려고 시도하는 중'이라는 yii \ base \ ErrorException이 발생합니다. – Perino
당신은 당신의 dataProvider가 $ dataProviderMembers이고 실제로 속성 멤버를 가지고 있습니까? 컨트롤러 액션 코드를 추가하십시오. – scaisEdge
예, dataggridview는 $ dataProviderMembers로 올바르게 채워집니다. 나는 테스트 목적 (체크 박스 컬럼 이전의 컬럼)을 위해 생성 한 추가 컬럼 'member'에 적절한 멤버 값을 볼 수 있으며, 이제는 컨트롤러 함수의 주요 부분을 추가했다. – Perino