Akelos Framework v1 forum archive. This forum is no longer maintained. To report bugs please visit https://github.com/akelos/akelos/issues
    • CommentAuthormarvin.s
     
    class BetTheme extends ActiveRecord
    {
    var $serialize = "my_group";
    }

    when i performence:
    $betTheme = new BetTheme();
    $betTheme->name = "xxxx";
    $betTheme->my_group = array('isAll'=>true,......);
    $betTheme->save();
    occured some errors below
    Notice: Array to string conversion in D:/xampp/htdocs/alivenotdead/lib/AkActiveRecord.php on line 4178
    Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in D:/xampp/htdocs/alivenotdead/vendor/adodb/drivers/adodb-mysql.inc.php on line 137
    give me some suggestions please, thank you
    • CommentAuthorKaste
     

    You assume that var $serialize = "my_group"; will do anything useful, but AFAIK it doesn't.

    But I think this is an easy one:

    We could have a table with a metadata_array column. Then we declare

    function setMetadata($value)
    {
        $this->set('metadata_array',serialize($value));
    }
    
    function getMetadata()
    {
        return unserialize($this->get('metadata_array'));
    }
    

    in the model. We now have a transparent or virtual attribute.

    $metadata = array('keywords'=>array('some','tags','here'),'descriptor'=>'xml-stuff');
    $Model->setMetadata($metadata); // or:
    $Model->set('metadata',$metadata); // or:
    $Model->create(array(...,'metadata'=>$metadata));