Object not saving

Do object attributes not save unless it has a validation rule applied to it? I am trying to save a form with no validations applied to it and it does not save, if I apply a validation rule to one of the fields then it does save.

You should read the documents… here is the part for the attribute assignements - http://www.yiiframework.com/doc/guide/1.1/en/form.model#securing-attribute-assignments

Yeah I have done that, but it still does not work.

Its not really what I am asking. But thanks for your help.

Let me explain …

Here is the code for my controller action: -

public function actionCreate() {


			$client = new Client;


			if(isset($_POST["Client"])) {


				$client->attributes = $_POST["Client"];


				if($client->validate()) {









			$view->client = $client;

			$this->render("Create", array("view" => $view));



As you can see I have used $client->attributes = $_POST["Client"]; already, however it still not saving the fields. Why is this?

Well I have tried with validation rules applied and without, it only saves the fields with the validation rules applied. So I am assuming Yii only saves attributes with validation rules applied, is this true?

You should read about “safe” attributes ;)

You have to define all attributes as "safe" in this case:

public function rules()


    return array(

        array('a, b, c, d', 'safe'),



There are many topics about safe attributes on the forum. Check the search result ;)

Thanks for your help, I will apply the safe attributes.

The link I gave you is just about what you need… as you wrote… seems to me that you have read it… but you haven’t understood it!

In your code you are using a "massive assignement" like:

$client->attributes = $_POST["Client"]; 

To decide what attributes can be assigned by using this massive assignement… in Yii we use "safe" attributes…

NOTE: if some attribute has a validation rule defined it becomes automaticaly safe (Yii 1.1.x)…

so try to read again that part of the documentation… I hope it will be more clear now…

Ahh I see what you are saying now, thanks for clearing it up.