yii, флажок CactiveForm
Я действительно пытаюсь отобразить контрольный список, никогда раньше не пробовал его, поэтому у меня возникли проблемы с ним, я пытаюсь отобразить все флажки в каждом столбце или атрибуте, это контроллер действия:
public function actionCreate()
{
$model=new Parametro;
$variable = file_get_contents('protected\column.txt');
$vars = explode(' ', $variable);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Parametro']))
{
$model->attributes=$_POST['Parametro'];
if($model->save())
$this->redirect(array('view','id'=>$model->id));
}
$this->render('create',array(
'model'=>$model,
'variable'=>$vars,
));
}
это модель с еще некоторыми методами
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
$variable = file_get_contents('protected\column.txt');
return array(
array('parametro_id', 'required'),
array('parametro_id', 'numerical', 'integerOnly'=>true),
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array('id, parametro_id', 'safe', 'on'=>'search'),
array($variable, 'safe', 'on'=>'search'),
);
}
public function generateAttributeLabel($variable = null)
{
if($variable)
{
$variable = file_get_contents('protected\column.txt');
}
return $variable;
}
public function attributeLabels()
{
return array(
'id' => 'ID',
'parametro_id' => 'Parametro',
);
}
форма, где я пытаюсь сделать чекбокс
<div>
<?php echo $form->checkboxList($model, $variable, array(0 => 1)); ?>
</div>
и содержимое файла, если вы спросите
lololo trying
Вот некоторые столбцы, которые генерируются автоматически, и я сохраняю их имена в этом файле, разделенные пробелами. Кажется, что все в порядке, пока я не попал в список проверок в форме, это выдает ошибку типа strpos() или что-то в этом роде, как я могу сделать этот флажок для отображения и сохранения 1 данных в те, которые проверяются определенными столбцами?
1 ответ
Если проблема в том, что вы не можете установить флажки, попробуйте это
Обновить
В вашем _form.php
<div>
<?php echo CHtml::checkBoxList('createCheck', array(), $variable); ?>
</div>
вам нужно изменить действие контроллера для этого
public function actionCreate()
{
$model=new Parametro;
$variable = file_get_contents('protected\column.txt');
$vars = explode(' ', $variable);
// make SURE that you are getting $vars as array
if(isset($_POST['Parametro']))
{
$model->attributes=$_POST['Parametro'];
if(isset($_POST['createCheck']))
{
$newVar=array();
$checkVariables=$_POST['createCheck'];
foreach($checkVariables as $key)
{
$newVar[]=$vars[$key];
}
if(!empty($newVar))
{
foreach($newVar as $saveIt)
{
$model->$saveIt='y';
}
$model->save();
}
}
$this->redirect(array('view','id'=>$model->id));
}
$this->render('create',array(
'model'=>$model,
'variable'=>$vars,
));
}
Примечание:- это может привести к ошибкам, так как я не знаю структуру вашей таблицы. Если у вас возникла проблема, попробуйте решить ее или просто спросите