FuelPHP - 在ORM模型中使用核心类

How can I use a core classe in my ORM Model ?

Is working:

protected static $_properties  = array(
    'id',
    'user_id',
    'v_key' => array('default' => 'abc' ),
    'a_key' => array('default' => 'def' ),
    'created_at',
    'updated_at'
);

Isn't working:

protected static $_properties  = array(
    'id',
    'v_key' => array('default' => Str::random('alnum', 6) ),
    'a_key' => array('default' => Str::random('alnum', 6) ),
    'created_at',
    'updated_at'
);

The error

Thanks!!

Ok, I used an observer to do that.

/classes/observer/session.php

<?php

namespace Orm;

use Str;

class Observer_Session extends Observer {
  public function after_create(Model $session) {

    $session->v_key = Str::random('alnum', 6);
    $session->a_key = Str::random('alnum', 6);

  }

/classes/model/session.php

enter image description here

Your actual problem here is that you can't perform function calls when making static assignments in PHP. How to initialize static variables

To dynamically set default values, you can override the forge method in your session model:

public static function forge($data = array(), $new = true, $view = null, $cache = true)
{

    $data = \Arr::merge(array(
        'v_key'      => \Str::random('alnum', 6),
        'a_key'      => \Str::random('alnum', 6),
    ), $data);

    return parent::forge($data, $new, $view, $cache);

}