Yiiのwidgetのデフォルト値を設定する方法

Yiiでwidgetを利用する場合、

<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm', array(
  'id'=>'user-form',
  'enableAjaxValidation'=>false,
  'enableClientValidation'=>true,
  'clientOptions'=>array('validateOnSubmit'=>true),
  'type'=>'horizontal',
  'focus'=>array($model,'name'),
)); ?>

のような感じに書くのですが、同じような複数のwidgetを設置する必要がある場合、同じ設定を毎回書くのは面倒です。この面倒を回避するために、widgetに渡すデフォルト値をあらかじめ設定しておく方法があります。例えば、上記widgetの場合、protected/config/main.phpに

    'widgetFactory'=>array(
      'widgets'=>array(
        'TbActiveForm'=>array(
          'enableAjaxValidation'=>false,
          'enableClientValidation'=>true,
          'clientOptions'=>array('validateOnSubmit'=>true),
          'type'=>'horizontal',
        ),
      ),
    ),

のように書いておけば、

<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm', array(
  'id'=>'user-form',
  'focus'=>array($model,'name'),
)); ?>

のように省略して書くことができるようになります。

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