My Yii code not showing error summery before save movie in database.. what’s the problem ?
Form code: http://jsfiddle.net/SRMzc/
it’s actionCreate function:
public function actionCreateM()
{
$model=new Movie;
if(isset($_POST['Movie']))
{
$model->attributes=$_POST['Movie'];
$photos = CUploadedFile::getInstancesByName('photo');
if (isset($_POST['Movie']['youtube_id'])){
$model->youtube_id=$_POST['Movie']['youtube_id'];
}
if (isset($_POST['Movie']['poster_uri'])){
$file=CUploadedFile::getInstance($model,'poster_uri');
if(isset($file)){
$model->poster_uri = $model->short_title .'_poster.' . $file->extensionName;
}
}
if($model->save()).......
Rules:
from movie model
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('title, short_title, year, imdb_rate, rate, cast, director, summary, release_date, duration, views, featured', 'required'),
array('views, featured, available_status', 'numerical', 'integerOnly'=>true),
array('title, short_title, genre, director', 'length', 'max'=>64),
array('poster_uri', 'file', 'types'=>'jpg, gif, png', 'allowEmpty' => true),
array('cast', 'length', 'max'=>256),
array('year', 'length', 'max'=>4),
array('lang', 'length', 'max'=>2),
array('imdb_rate', 'length', 'max'=>3),
array('rate', 'length', 'max'=>5),
array('duration', 'length', 'max'=>11),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('title, short_title, views, featured, available_status', 'safe', 'on'=>'search'),
);
}
Error summary works with ajax. you need to set enableAjaxValidation to true in your form definition. then you need to track that ajax call in action and validate your model and then echo the errors (check create action in Yii blog demo app for more details).
If you need to validate the code in PHP try following
or
validation code goes something like this
Edit:- You don’t really need to enable ajax to get validation summary. you can have php code for the same, something like this.