krajee 의 gridview 작은 구성 요소 가 장면 과 결합 하여 발생 하 는 문제

다른 사람 이 쓴 gridview 위 젯 을 찾 습 니 다.http://demos.krajee.com/grid-demo?page=2&per-page=10#configure
전화 번 호 를 누 르 면 수정 하고 필수 인증 을 하지만 editmobile 라 는 action 에 제출 하여 검증 합 니 다.
[
  'class'=>'kartik\grid\EditableColumn',
  'attribute'=>'mobile',
  'pageSummary'=>'Total',
  'vAlign'=>'middle',
  'width'=>'210px',
  'readonly'=>function($model, $key, $index, $widget) {
     return (!$model->mobile)?$model->mobile:null; 
   },
   'editableOptions' => [
     'inputType' => \kartik\editable\Editable::INPUT_TEXT,
     'formOptions' => [
       'action' => 'editmobile',
      ],
      // 'placement' => 'left',//        
    ]
],

actionEditMobile 은 editmobile 장면 을 연결 하기 때문에 editmobile 장면 에서 mobile 이 필수 항목 입 니 다. 이 구성 요소 의 검증 장면 은 default 이기 때문에 오 류 를 제시 하지 않 았 습 니 다.우 리 는 editmobile 에 제출 할 때 처 리 를 해 야 한다.이 구성 요소 의 코드 를 봤 는데 class Editable ColumnAction 의 function vaidate Editable () 을 찾 았 는데 되 돌아 오 는 데이터 가 모두
return ['output' => $value, 'message' => $message];

이제 어떻게 쓰 는 지 알 겠 죠?
public function actionEditMobile()
{
  $post=Yii::$app->request->post(); 
  $id=!empty($post['editableKey'])?$post['editableKey']:false;   
  if(!$t_id){    
    $Info=Info::find()->where(['id'=>$id])->one();  
    $Info->setScenario('editmobile');
    $value["Info"] = $post['Info'][$post['editableIndex']]; 
    $Info->load($value);
    if(!$Info->save()){
      echo json_encode(["output"=>"","message"=> array_values($Info->getFirstErrors())[0]]);
      exit;
    }
  }
}

변경 후 알림 핸드폰 번호 가 비어 있 으 면 안 됩 니 다.
비고: 제 동료 zacklee 가 이 구성 요 소 를 사용 할 때 이 문 제 를 만 났 기 때문에 저 에 게 도움 을 청 했 습 니 다. 그래서 저 는 해결 방법 을 보 냈 습 니 다.

좋은 웹페이지 즐겨찾기