2017-07-05 21 views
0

私たちの学校には時間割アプリケーションがあります。私たちはその機能を拡張しようとしています。Yii GridView:条件に基づいて行を強調表示

現在、クラスコードが検索されると、そのクラスの生徒のリストが取得されます。私たちはデータベースのための新しいモデルを作成しました。このモデルには、医療上必要な学生のリストがあります。

私たちのタイムテーブルビューのGridviewは、私たちの医療テーブルの記録を持つ学生を強調することを望みます。私たちは、条件に基づいてグリッドビューでハイライトする必要がなかったこのことについて、どうやって行くべきか確信しています。

時刻表モデル;

public function rules() 
    { 
     return [ 
      [['ttLastName', 'ttFirstName', 'ttYearLevel', 'stuId', 'ttClassId'], 'required'], 
      [['ttYearLevel'], 'integer'], 
      [['ttLastName', 'ttFirstName', 'stId', 'ttClassId'], 'string', 'max' => 255], 
      [['stuId'], 'exist', 'skipOnError' => true, 'targetClass' => Student::className(), 'targetAttribute' => ['stuId' => 'stuId']], 
     ]; 
    } 

医療モデル;

public function rules() 
    { 
     return [ 
      [['amCreatedAt', 'amBackGround', 'amStrategies', 'amCreatedBy'], 'required'], 
      [['amCreatedBy', 'stuId'], 'integer'], 
      [['amCreatedAt'], 'string', 'max' => 100], 
      [['amBackGround', 'amStrategies'], 'string'], 
      [['stuId'], 'exist', 'skipOnError' => true, 'targetClass' => Student::className(), 'targetAttribute' => ['stuId' => 'stuId']], 
     ]; 
    } 

時刻表gridview;

<?= GridView::widget([ 
     'dataProvider' => $dataProvider, 

     //'filterModel' => $searchModel, 
     'columns' => [ 
      //['class' => 'yii\grid\SerialColumn'], 

      'ttLastName', 
      'ttFirstName', 
      'ttYearLevel', 
      'bceId', 
      'ttClassId', 

      // 'ttClassId', 

      ['class' => 'yii\grid\ActionColumn'], 
     ], 
    ]); ?> 

任意の助けをいただければ幸い、私たちは完全なコードにそれにアプローチする方法についてだけ説明を必要としません。

あなたは

+0

あなたの医療モデルからタイムテーブルモデルのグリッドビューにデータをハイライトしたいことを確認しますか? –

答えて

0

あなたはグリッド行のためのクラスを追加するためのGridViewのrowOptionsプロパティをccustomizeすることができますありがとうございます。そのクラスに背景色を付けるようにCSSを追加してください

<?= GridView::widget([ 
    'dataProvider' => $dataProvider, 

    //'filterModel' => $searchModel, 
    'rowOptions' => function ($model, $key, $index, $grid) { 
     // $model is the current data model being rendered 
     // check your condition in the if like `if($model->hasMedicalRecord())` which could be a method of model class which checks for medical records. 
     if() { 
      return ['class' => 'highlighted_grid_row']; 
     } 
     return []; 
    } 
    'columns' => [ 
     //['class' => 'yii\grid\SerialColumn'], 

     'ttLastName', 
     'ttFirstName', 
     'ttYearLevel', 
     'bceId', 
     'ttClassId', 

     // 'ttClassId', 

     ['class' => 'yii\grid\ActionColumn'], 
    ], 
]); ?> 
関連する問題