codeigniter-pass-Variablen vom controller zum model
einfache Frage, die ich vermute.
Mein controller ist immer der, wenn die Anzeige von der url mit $this->uri->segment(3)
. Dabei wird immer ein einzelner Wert. Ich bin daran, diese in einem array zu übergeben, um das Modell mit:
$customerid = array(
'id' => $this->uri->segment(3)
);
Die controller-syntax ist unten:
function confirm_delete_customer()
{
$data['title']="Confirm Customer Deletion";
$customerid=array(
'id'=>$this->uri->segment(3)
);
//query model to get data results for form
$data=array();
if($query=$this->model_master_data->get_customer_records_to_delete()){
$data['records']=$query;
$this->load->view("master_data/view_master_data_header",$data);
$this->load->view("master_data/view_master_data_nav");
$this->load->view("master_data/view_content_master_data_confirm_customer_deletion",$data);
$this->load->view("master_data/view_master_data_footer");
}
Bin ich dann versuchen, Zugriff auf dieses array Wert und übergeben es an meinem Modell zu verarbeiten. Wenn ich hart code das array in das Modell er arbeitet als pro die folgende syntax:
Modell - Handbuch-Syntax ist:
function get_customer_records_to_delete()
{
$query = $this->db->get_where('customers', array('id'=>43));
return $query->result();
}
wenn ich versuche, ersetzen Sie diese mit dem array von meinem controller schlägt fehl mit Fehler:
Undefined variable: customerid
Idee von Modell, ich möchte arbeiten:
function get_customer_records_to_delete()
{
$query = $this->db->get_where('customers', $customerid);
return $query->result();
}
Habe ich das Gefühl es ist etwas klein. jedoch ist dies der beste Weg, um einen einzelnen Datensatz aus der Datenbank, um eine Ausgabe auf einen Blick?
Vielen Dank im Voraus für die Hilfe.
InformationsquelleAutor Smudger | 2013-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der beste Weg das zu tun ist:
dann rufen Sie einfach an:
in Ihrem Modell.
Zweitens, ist dies die beste code-snippet zu verwenden, um wieder einen einzelnen Datensatz? Nochmals vielen Dank John.
Die Antwort ist Nein, dies ist nicht die beste Praxis. Ich werde zu aktualisieren, wird die Antwort mit der best-practice-Technik.
Ok habe ich update meine Antwort. Was denken Sie jetzt? 🙂
Genial, das macht zuzuteilen Sinn, wenn ich es Lesen kann, Sie zu schreiben, ist ein anderes Thema 🙂 Danke, John, schätzen Ihre Zeit.
InformationsquelleAutor John Skoumbourdis
Du musst den Wert als argument an die Funktion, so dass Sie darauf zugreifen können.
Ex:
InformationsquelleAutor Phil
Sollten Sie verlassen sich stark auf die Funktion Parameter. Greifen Sie die Kunden-id aus der Steuerung aus und senden Sie es an das Modell. Außerdem kann man
row()
erhalten Sie ein Ergebnis aus der Datenbank.Controller:
Modell
InformationsquelleAutor deadlock
Alten thread, aber die Antwort ist, deklarieren Sie die variable als "public" in der controller (d.h.
public $customerid;
), in welchem Fall es wird zur Verfügung, um Ihr Modell. In einigen Fällen ist es wohl sicherer, explizit übergeben als argument. Jedoch, wenn Sie mehrere Variablen, ist es sinnvoll, die Möglichkeit zu erklären, statt.InformationsquelleAutor globalweb