2017-05-31 4 views
0

Ich entwickle ein Projekt in Laravel 5.4. Ich möchte eine Auswahl schreiben, einfügen und aktualisieren Abfrage in meinem Modell, die für jede Tabelle in der Datenbank funktionieren sollte. Ich habe das gemacht, ist Codeigniter und funktioniert gut dort, aber ich weiß nicht, wie man es in Laravel benutzt.Laravel Abfrage schreiben

Im Folgenden finden Sie den Code aus einer Modelldatei in Codeigniter

class General_Model extends CI_Model { 

     public function fetch_CoustomQuery($sql){ 
     $query = $this->db->query($sql); 
     return $query->result(); 

     } 


     public function create_record($data, $tbl) 
     { 
     $this->db->set($data); 
     $this->db->insert($tbl); 
     return ($this->db->affected_rows() != 1) ? FALSE : TRUE; 
     } 



     public function update_record($data, $tbl, $wher) 
     { 
     $this->db->where($wher); 
     $this->db->set($data); 
     $this->db->update($tbl); 
     } 


     public function delete_record($tbl, $wher) 
     { 
     $this->db->where($wher); 
     $this->db->delete($tbl);   
     } 
} 

Es in Codeigniter sehr einfach war. Ich muss nur die Parameter übergeben und hat gut funktioniert. Ich möchte dieselben Abfragen in meinem Modell in Laravel schreiben. Bitte helfen

+0

In Laravel würde dies normalerweise in der Steuerung, nicht das Modell gehen. Werfen Sie einen Blick auf [Laravel's Query Builder] (https://laravel.com/docs/5.4/queries). –

+0

"Ich möchte eine Auswahl schreiben, einfügen und aktualisieren Abfrage in meinem Modell, die für jede Tabelle in der Datenbank funktionieren sollte." Nein, das tust du nicht. Sie möchten die integrierte Funktionalität verwenden, anstatt ein zusätzliches seltsames ORM auf dem vorhandenen, gut durchdachten ORM zu erstellen. – ceejayoz

+0

Zusätzlich empfehle ich dringend, Laracasts zu abonnieren. Insbesondere [hier ist ein Screencast basierend auf dem Abfrage-Generator] (https://laracasts.com/series/laravel-from-scratch-2017/episodes/8?autoplay=true) - (Link aktualisiert) –

Antwort

3

Ich würde dringend empfohlen die documentation Lesen aber die Methoden sind so einfach wie:

GeneralModel::create(["num" => 1, "name" => 2]); 
GeneralModel::where("num", ">", 2)->update(["num" => 1]); 
GeneralModel::where("num", ">", 2)->delete(); 

Es besteht keine Notwendigkeit, diese Methoden auf die Modelle zu setzen.

1

wenn Sie wirklich wollen, so etwas, dann können Sie Funktion dort haben, die Modelle als Parameter akzeptiert:

public function create_record($model,$data) 
{ 
    $model::create($data); 
} 

wo in der Steuerung können Sie so etwas wie

$model = App\Fruit; // lets say fruit is a model you have 
GeneralModel::create_record($model,$data); 

tun, aber warum nicht einfach gehen Sie gerade damit:

$var = App\Fruit::create($data); 

das ist redundant .. für jedes Modell haben aw um Datensätze aus ihrer Perspektiventabelle zu holen, einzufügen, zu aktualisieren oder zu löschen. Ich schlage vor, Sie lesen mehr Dokumentation über Laravel Eloquent