2012-04-10 11 views
0

Ich habe heute Nacht keine Umgebungseinstellung, um das zu testen, aber diese Frage hat mich die ganze Nacht lang gequält, also Entschuldigung.CRUD - Verwenden von "call_user_func_array" zum Erstellen neuer (php-activerecord) Datensatz?

Ich verwende phpactiverecord in meinem Codeigniter-Framework zusammen mit meiner versuchten CRUD-Bibliothek. Ich habe nicht viel Erfahrung mit der Funktion "call_user_func_array" - Schande über mich. Also ich denke, meine Frage ist ... Wird mein erwartetes Ergebnis das gleiche sein wie das tatsächliche Ergebnis aus dieser Funktion

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); 
    } 

Antwort

1

If:

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

ist wie:

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

Dann tun Sie einfach folgendes, das ist viel einfacher:

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

es funktioniert auch, wenn Sie Namespaces verwenden.

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

Das war meine ursprüngliche Herangehensweise, aber ich lief irgendwo damit auf ein Problem. Es funktioniert gut in der obigen Instanz. – Philip

Verwandte Themen