我有一个表单,其中包含一个类(我的意思是表)的多个引用,只需添加更多详细信息。该任务的主要目标是一家公司拥有多个用户。每个用户都有一些访问限制。因此,在添加公司时,我们将添加多个公司用户。公司用户表单有访问单选按钮。这里单选按钮验证不起作用。复选框和下拉列表也是同样的问题。下面给出了示例代码。请帮忙。
AccessController.php
class AccessController extends Controller
{
public function actionCreate() {
$formDetails = Yii::$app->request->post('ClientAllowAccess', []);
if(!empty($formDetails)){
foreach ($formDetails as $i => $formDetail) {
$modelDetail = new ClientAllowAccess(['scenario' => ClientAllowAccess::SCENARIO_BATCH_UPDATE]);
$modelDetail->setAttributes($formDetail);
$modelClientAccess[] = $modelDetail;
}
} else {
$modelClientAccess[] = new ClientAllowAccess(['scenario' => ClientAllowAccess::SCENARIO_BATCH_UPDATE]);
}
return $this->render('create', [
'client_allow_access_multiple' => $modelClientAccess
]);
}
}
create.php
....
<?php foreach($client_allow_access_multiple as $i => $client_allow_acces): ?>
<?= $form->field($client_allow_access, '[$i]access_type')->radioList([1 => 'Allow access', 2 => 'Can\'t allow access'],[ 'item' => function($index, $label, $name, $checked, $value) {
$return = '<label class="modal-radio">';
$return .= '<input type="radio" name="' . $name . '" value="' . $value . '" id="custom_id_value_'.$index.'" >';
$return .= '<span> ' . ucwords($label) . '</span>';
$return .= '</label>';
return $return;
}]); ?>
<?php endforeach; ?>
....
呈现视图
<div class="form-group field-clientcontactdetails-0-gender has-success">
<label class="control-label" for="clientcontactdetails-0-gender">Gender</label>
<select id="clientcontactdetails-0-gender" class="form-control" name="ClientContactDetails[0][gender]">
<option value="">---</option>
<option value="1">Male</option>
<option value="2">Female</option>
<option value="3">Others</option>
</select>
<div class="help-block"></div>
</div>
<div class="form-group field-clientallowaccess-0-access_type required">
<label class="control-label" for="clientallowaccess-0-access_type">Access Type</label>
<input type="hidden" name="ClientAllowAccess[0][access_type]" value=""><div id="clientallowaccess-0-access_type"><label><input type="radio" name="ClientAllowAccess[0][access_type]" value="1"> Allow access</label>
<label><input type="radio" name="ClientAllowAccess[0][access_type]" value="2"> Can't allow access</label></div>
<div class="help-block"></div>
</div>