Знаю, что тема обсуждалась много раз, но учитывая все прочтенные ветки и документацию составил код, который не хочет работать так, как он должен бы...
Проблема в следующем - у меня из формы в модель Jobposition надо передавать дополнительный атрибут "posada_input", которого НЕТ в таблице БД - т.е. как переменная:
Код: Выделить всё
<input id="Jobposition_posada_combobox" type="text" value="" name="Jobposition[posada_input]" class="ui-autocomplete-input ui-widget ui-widget-content ui-corner-left" autocomplete="off"/>
Код: Выделить всё
class Jobposition extends CActiveRecord
{
public $posada_input; // сюда будет приходить текстовый еквивалент
...
public function rules()
{
return array(
array('department_id, employee_id', 'required'),
array('employee_id, vnutr_sum, posada, edu_posada, vo, education_id', 'numerical', 'integerOnly'=>true),
array('stavka', 'numerical', 'min'=>0, 'max'=>1),
array('department_id','numerical', 'integerOnly'=>true,'min'=>1,'tooSmall'=>'Значення атрибуту Відділ не може бути порожнім.'),
array('date_start, date_end', 'date', 'format'=>'dd.MM.yyyy'),
// !!!!!!!!!!!
array('posada_input', 'length', 'max'=>255),
);
}
Код: Выделить всё
public function actionCreate()
{
$model=new Jobposition;
if (isset($_POST['Jobposition'])) {
// к моему удивлению, после ЭТОГО атрибут $model->posada_input не существует (хотя в $_POST['Jobposition'] он приходит)
$model->attributes=$_POST['Jobposition'];
// а ЕСЛИ ВОТ ТАК я его принудительно доприсваиваю то все становится как надо...
$model->posada_input=$_POST['Jobposition']['posada_input'];
Заранее благодарен! Хочется просто разобраться, хоть и так оно работает.