CodeIgniter - Konstruktoren in den Modellen
So, hier ist mein controller:
class Search extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('search_model');
$this->search_model->search_result = $_POST;
}
public function index()
{
$data['results'] = $this->search_model->get_results();
$this->load->view('search_results', $data);
}
Und hier ist mein Modell:
class Search_model extends CI_Model {
protected $search_query;
function __construct($search_query)
{
parent::__construct();
$this->load->database();
$this->search_query = $search_query;
}
Aber das scheint nicht zu funktionieren. Was ich will zu tun ist, übergeben Sie die gebuchten Formular ($_POST) zu meinem Modell, dann tun Sie Sachen mit ihm. Aber es scheint chaotisch zu übergeben, $_POST, um jede Methode von meinem Modell. Mein plan besteht darin, die Variablen gesendet mit $_POST und bauen diese als Eigenschaften wie $website_url, $text_query etc..., dann rufen Sie diese Methoden mit $this->website_url;
Ich bin relativ neu bei CodeIgniter also einfach Griff zu bekommen mit den Grundlagen
- Geschützt... macht das Wort scheint offensichtlich nur mich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
für Ihre speziellen Zweck können Sie versuchen, diesen code
Controller:
Modell:
haben Sie
protected $search_query;
die Sie nicht zugreifen können es von Ihrem controller.Sie haben entweder zu ändern, um
public
oder erstellen Sie getter-und setter dafür. oder einfach nur get-je nach Ihrer domain/business-Logik.- Und es sollte offensichtlich sein, wie sollten Sie eine Fehlermeldung erhalten, sagen
Nicht die 'Suchanfrage' im Modell-Konstruktor.
Controller:
Ihr Modell:
$this->input->post()
in CodeIgniter (globals sind gereinigt-System/Input-Bibliothek)...aber du hast Recht überload->database()
ist es erforderlich, wenn Sie nicht autoloading es (ich habe noch nie arbeitete an einem Projekt, dass nicht die DB überall, aber ich bin sicher, es macht Sinn, auf kleinere Websites).