0

我有一个Yii 行为,它添加了一些带有条件的自定义字段

_form.php

$form->attachbehavior('users', new DirectoriesBehavior);

// return part of form
echo $form->getDirectory(array('sysName' => 'users', 'useDefaultValue' => true));

// Other form parts (default for yii)
echo $form->labelEx($model, 'name');

DirectoriesBehavior::getDirectory()<select>使用或<input>等字段构建 HTML 表单部分。

但是如何将表单的名称/ID 发送到我的行为中?

渲染后的样子

<form method="" id="myForm">
    <!--BEHAVIORS CONTENT-->
    <select>
        <option value="UserId">UserName</option>
    </select>

    <!--Default fields of form-->
    <input type="text" name="myForm[exampleField]" />
</form>

我的行为内容应该看起来像

<select name="myForm[users]">
    <option>etc</option>
</select>
4

1 回答 1

0

我解决了这个问题:

我们可以在 _form.php 中发送 $model

$form->getDirectory(array('model' => $model));

在 DirectoriesBehavior.php

public function getDirectory(array $data)
{
    $this->inputName = get_class($data['model']);
}

另外(对于将与此表单一起使用的脚本,我们可以发送表单的 ID)

_form.php

$form->id;
于 2012-08-22T06:50:49.360 回答