YiiのDetailViewでの表示制限

YiiのDetailViewでは、

<?php $this->widget('bootstrap.widgets.TbDetailView', array(
  'data'=>$model,
  'attributes'=>array(
    'id',
    'title',
    'detail',
    'status',
    'created',
  ),
)); ?>

のように記述するとモデルに含まれる要素を表示することができますが、表示されるデータのうち、あるデータだけは管理者にしか表示したくないという場合があります。
例えば、statusは管理者にのみ表示するようにするには、

<?php $this->widget('bootstrap.widgets.TbDetailView', array(
  'data'=>$model,
  'attributes'=>array(
    'id',
    'title',
    'detail',
    array(
      'name'=>'status',
      'value'=>$model->status,
      'visible'=>Yii::app()->user->checkAccess(User::USER_ROLE_ADMIN),
    ),
    'created',
  ),
)); ?>

のようにするとよいです。
なお、アクセスコントロールについては、こちらを参考にしてください。

 

投稿日:
カテゴリー: php タグ: