"... Cannot Be Blank" - Pomimo Że Podano Wartości

scr.hu/6zp/aoey7 -> "create" -> scr.hu/6zp/9gdho . Product to defaultowy model a ProductController defaultowy CRUD. Co może być nie tak?

// edit

$model->attributes jest okej, sprawdzałem.

Według tych scr do modelu nie podajesz wartości z formularza, więc walidacja wyrzuca błąd pustego pola, daj następujący kod:

  1. modelu -> rules.

  2. controller -> metoda obsługująca create.

  3. ewentualnie widok->formularz

Dzięki wielkie za odpowiedź. :)

Problem w tym, że wszystko jest defaultowe, jak już pisałem. No chyba że gdzieś wkradł się błąd. Jest możliwość że coś nie tak z bazą? Dużo w niej “foreign keys”, pierwszy raz taką robiłem, więc może coś popsułem? :)

Dam może wszystko, jakby błąd był gdzie indziej:

Controller: wklej.to/jx4UX

Model: wklej.to/eDt5l

Form: wklej.to/maUGg

spróbuj dodać walidację przed save() i zmień save() na save(false), jak będzie wyrzucał błąd walidacji, to coś źle z regułami (w kodzie wydaje się być ok), jak będzie błąd wstaw jeszcze var_dump($_POST[‘Product’]) przed model->atributes powtórz po model->atributes var_dump($model) i podrzuć wynik


	public function actionCreate()

	{

		$model=new Product;


		// Uncomment the following line if AJAX validation is needed

		// $this->performAjaxValidation($model);


		if(isset($_POST['Product']))

		{

                        var_dump($_POST['Product']);


			$model->attributes=$_POST['Product'];

                         

                        var_dump($model);

                        die(); 

                        if($model->validate()){

			  if($model->save(false))

				$this->redirect(array('view','id'=>$model->id));

                        } 

		}


		$this->render('create',array(

			'model'=>$model,

		));

	}

albo ustaw save(false) co powoduje, że nie waliduje danych przed zapisem i zobacz czy się zapisuje do bazy:


	public function actionCreate()

	{

		$model=new Product;


		// Uncomment the following line if AJAX validation is needed

		// $this->performAjaxValidation($model);


		if(isset($_POST['Product']))

		{

			$model->attributes=$_POST['Product'];


			  if($model->save(false))

				$this->redirect(array('view','id'=>$model->id));


		}


		$this->render('create',array(

			'model'=>$model,

		));

	}

albo więcej w dokumentacji:

http://www.yiiframework.com/doc/api/1.1/CActiveRecord#save-detail

Sprawa zamknięta, z tego co wiem problem tkwił w obszarze relacji w BD i modelu.