Yii: Как создать 2 поля ввода по 1 полю таблицы? - PullRequest
0 голосов
/ 23 марта 2012

Что мне нужно:
form.created_from, form.created_to => table.created BETWEEN <form.created_from> AND <form.created_to>

#table model
class SomeModel extends CActiveRecord {
    public function attributeLabels()
    {
        return array(
            'id' => 'ID',
            'created' => 'Created',
        );
    }
}
#form model
class SomeModelForm extends CFormModel {
    public $id;
    public $createdFrom;
    public $createdTo;
}
#controller
class SomeController extends Controller {
    public function actionSomeAction() {
       $model = SomeModel('SomeModelForm');
    }
}

ОШИБКА: Исключение: свойство "SomeModel.createdFrom" не определено.
Возможно ли это сделать без определения неиспользуемых свойств (createdFrom, createdTo) в SomeModel?

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Вы можете попробовать вот так, надеюсь, это сработает:

$model = new SomeModelForm;
$model->attributes = $_POST['SomeModelForm'];

$criteria = new CDbCriteria();
$criteria->addBetweenCondition('created', $model->createdFrom, $model->createdTo);
$result = SomeModel::model()->findAll($criteria);
0 голосов
/ 23 марта 2012
#form model
class SomeModelForm extends CFormModel {
    public $id;
    public $createdFrom;
    public $createdTo;
    public function search()
    {
        $criteria = new CDbCriteria();
        $criteria->compare('id', $this->id);
        $criteria->addBetweenCondition('created', $this->createdFrom, $this->createdTo);
        return new CActiveDataProvider(SomeModel::model(), array(
            'criteria' => $criteria,
        ));
    }
}

#controller
class SomeController extends Controller {
    public function actionSomeAction() {
       $model = SomeModelForm();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...