[SOLVED]List box with multiple selection

I dont have such a line in my controller.


i was just telling about my error when i try executing it.

What is the function that gives you the error?

Are you sure that the beforeSave succeded and converted the array to a string before calling this function?

Are you sure that you have not some stuff like length validator on the field?

Try douing a bit of debug, and understand what is calling mb_strlen on this array.

Everything started working but now problem is storing it in db

I am getting the value like this inside db

why so??

Inside model i have given in rules for skillid field like dis


i hope that is not the prob

You save the data serialized


following Zaccaria’s instructions

//serialize the data before save to database

public function beforeSave()


    $this->skillid= serialize($this->skillid);

    return parent::beforeSave();


//transform the serialized data back into its normal form after find

public function afterFind()


    $this->skillid= unserialize($this->skillid);

    return parent::afterFind();


By following his words only it was possible to do…

But why is the data getting stored like that??

is it the way it gets stored while using serialization?

Anyway i have started using json_encodeinstead of serialization…

If you want to store a string like "9,10" you can use the PHP function implode() and explode()…

i am trying on implode now…

public function beforeSave()


   $this->skillid= implode (',',$this->skillid);

    return parent::beforeSave();


but giving a error implode() [<a href=‘function.implode’>function.implode</a>]: Invalid arguments passed


Even though this error is shown all my data is getting stored properly in db… :blink: :blink: :blink: :blink:

Can someone help me out… why is this error coming??

Guys i fixed it with a crooked way… ;) i just removed the error msg from the code… :D

What do you mean by that?

What line(s) did you remove from what source file?

i just removed a single line from my order form

<?php echo $form->error($model,'skillid'); ?>

So no error will be coming… :D

Actual Problem Now

It gives you an error when ‘skillid’ is empty, therefore you should use @ or test the variable, like



and after do that, continue using the error field

Great… Thank you… It’s working… :D