2017-11-19 5 views
0

I했습니다 컨트롤러 createCommandYii2 : ID 태그가있는 gridview에 추가

$receipts=new receipts(); 
    $query1 = new Query; 
    $query1 ->select(['price','date','id']) 
     ->from('paymentreceipts') 
     ->join( 'INNER JOIN','patient','patient.patient_id =paymentreceipts.patient_id') 
     ->where('patient.patient_id=:id', array(':id'=>$id))  
     ->orderby ('paymentreceipts.date'); 
    $command1 = $query1->createCommand(); 
    $dataProvider1 = $command1->queryAll(); 
    $gridViewDataProvider3 = new \yii\data\ArrayDataProvider([ 
    'allModels' => $dataProvider1, 
    'sort' => [ 
    'attributes' => ['price','reg_date','id'], 
    ], 
    ]); 

    return $this->render('view', [ 
     'model' => $this->findModel($id), 
     'gridViewDataProvider2' => $gridViewDataProvider2, 
    ]); 

에서 view.php

<?= 
    GridView::widget([ 
     'dataProvider' => $gridViewDataProvider2, 
     // 'pjax'=>true,  
     'summary'=>'', 
     'showFooter' => true, 
     'columns' => [ 
      ['label' => 'رقم الخدمة', 
      'attribute' => 'id', 
      ], 

      [ 
      // 'label'=>'url', 
      'format' => 'raw', 
      'value'=>function ($data) { 
      return Html::a('$data->date','#',['class' => 'receipts','id'=>'id']); 
      }, 
      ],   

      ] 

])>

내가되어 필요한 : ID를 추가 in 'attribute' => 'id' 여기에 만든 링크의 번호 ['class' => 'receipts','id'=>'id']);

나는를 사용했습니다.하지만 작동하지 않습니다!

내 영어가 좋지 않아서 내 질문에 명확하지 않을 수 있습니다.

+0

시도 : 'ID'=> $ 데이터 ->가 작동하지 않습니다 ID –

+0

'비 object' –

+0

및 $ 모델 -> ID의 속성을 얻으려고 노력? –

답변

0

JOIN 성명이 "id"를받지 못하는 이유입니다. 두 테이블 모두 "id"열을 가지고 있으므로 은 모호하며입니다. 아래처럼 쿼리를 변경하십시오 :

$query1 ->select(['price','date','id as receiptId']) 
    ->from('paymentreceipts') 
    ->join( 'INNER JOIN','patient','patient.patient_id =paymentreceipts.patient_id') 
    ->where('patient.patient_id=:id', array(':id'=>$id))  
    ->orderby ('paymentreceipts.date'); 
$command1 = $query1->createCommand(); 

다음과 같은 링크를 만들 수 있습니다.

return Html::a('$data->date','#',['class' => 'receipts','id'=>$data->receiptId]); 
+0

'객체가 아닌 객체의 속성을 얻으려고 시도했습니다 .' 문제는 같습니다. –