2012-04-10 30 views
0

我今晚沒有環境設置來測試這個,但這個問題一直嘮叨我整晚,所以道歉。CRUD - 使用「call_user_func_array」創建新的(php-activerecord)記錄?

我在我的codeigniter框架中使用phpactiverecord以及我嘗試的CRUD庫。我對函數「call_user_func_array」沒有太多的經驗 - 對我很慚愧。所以我想我的問題是...請問我的預期的結果是一樣的實際結果,從這個功能

public static function create_record($obj, $attr){ 
    $ORM = new $obj; 
    return (bool) call_user_func_array(array($ORM, "create"), $attr); 
    //self::create_record('Object', array); 
    //Expected: (bool)Object::create($attr); 
    } 

回答

1

如果:

CRUD::create_record('User', $this->input->post()); 

是這樣的:

User::create($this->input->post()); 

然後只要做到以下幾點,就簡單多了:

$obj = 'User'; 
$obj::create($this->input->post()); 

它也適用於使用名稱空間的情況。

$obj = 'app\models\User'; 
$obj::create($this->input->post()); 
+0

這是我最初的方法,但是我遇到了一些問題,在它下面的某處。它在上面的例子中工作正常。 – Philip 2012-04-12 07:18:16

相關問題