red-ogurez
(O Starigin)
January 27, 2014, 11:01am
1
Отображаю данные через TbGridView, добавил форму для фильтрации по дате, ну и валидатор для этого атрибута (public $dateInput; ) , чтоб корректную дату вводили. Фильтр работает. Но если ввести некорректные данные, то валидатор не срабатывает почему-то!!! Подскажите ребятушки…
код здесь:
http://pastebin.com/RYDX91P3
red-ogurez
(O Starigin)
January 28, 2014, 4:36am
2
Может подскажете новичку ?
Я понимаю что должно быть :
$model->dateInput = $_GET['HLpuRegister']['dateInput'];
if($model->validate())
{
$this->render('index',array(
'model'=>$model,
));
}
else {
$this->render( //тутвывод ошибок, но как это сделать не могу понять);
}
ineersa
(Ineersa)
January 28, 2014, 8:08am
3
red-ogurez:
Может подскажете новичку ?
Я понимаю что должно быть :
$model->dateInput = $_GET['HLpuRegister']['dateInput'];
if($model->validate())
{
$this->render('index',array(
'model'=>$model,
));
}
else {
$this->render( //тутвывод ошибок, но как это сделать не могу понять);
}
Передайте модель в view, а там выведите:
<?=CHtml::errorSummary($model);?>
//выведет все ошибки
$model->getErrors()
//вернет все ошибки в массив
red-ogurez
(O Starigin)
January 29, 2014, 3:18am
4
ineersa:
Передайте модель в view, а там выведите:
<?=CHtml::errorSummary($model);?>
//выведет все ошибки
$model->getErrors()
//вернет все ошибки в массив
Я передал модель во вьюху с самого начала, но это не помогло.
Нашел пока только временное решение, прописав в самой вьюхе:
if (!$model->hasErrors()) {
$this->widget('bootstrap.widgets.TbGridView',array(
...
));
а в контроллере:
if(isset($_GET['HLpuRegister']['dateInput'])){
$model->dateInput = $_GET['HLpuRegister']['dateInput'];
$model->validate()
при этом errorSummary выводит ошибки
mihail_dev
(Mihail Cucer)
January 30, 2014, 9:18am
5
red-ogurez:
Я передал модель во вьюху с самого начала, но это не помогло.
Нашел пока только временное решение, прописав в самой вьюхе:
if (!$model->hasErrors()) {
$this->widget('bootstrap.widgets.TbGridView',array(
...
));
а в контроллере:
if(isset($_GET['HLpuRegister']['dateInput'])){
$model->dateInput = $_GET['HLpuRegister']['dateInput'];
$model->validate()
при этом errorSummary выводит ошибки
TbGridView не предназначин для обработки ошибок можно только при ошибке ничего не выводить и всё
public function search(){
....
if($this->hasErrors())
return new CActiveDataProvider($this, array(
'data' => array()
));
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=> array(
'pageSize'=>50
)
));
}