2012-02-02 7 views
2

Новое в Codeigniter & PHP.Codeigniter, Передача переменной от модели контроллеру

Я хотел бы получить один бит данных из базы данных, превратить этот единственный бит данных в переменную и передать его контроллеру и использовать эти данные как одну переменную? Например, я мог бы сделать строку if $ string = $ и т. Д. С данными в контроллере.

Если бы кто-нибудь мог привести пример модели и контроллера, он был бы с благодарностью оценен.

+0

Mark этот ответ как «ПРИНЯТЫЙ», плакат! :) –

ответ

5

Это довольно просто и taken right from CodeIgniter's documentation, которые вы обязательно должны прочитать (комментарии в коде, в основном мои):

Контролер

class Blog_controller extends CI_Controller { 

    function blog() 
    { 
     // Load the Blog model so we can get some data 
     $this->load->model('Blog'); 

     // Call "get_last_ten_entries" function and assign its result to a variable 
     $data['query'] = $this->Blog->get_last_ten_entries(); 

     // Load view and pass our variable to display data to the user 
     $this->load->view('blog', $data); 
    } 
} 

Модель

class Blogmodel extends CI_Model { 

    var $title = ''; 
    var $content = ''; 
    var $date = ''; 

    function __construct() 
    { 
     // Call the Model constructor 
     parent::__construct(); 
    } 

    // Query the database to get some data and return the result 
    function get_last_ten_entries() 
    { 
     $query = $this->db->get('entries', 10); 
     return $query->result(); 
    } 

    // ... truncated for brevity 

} 

Редактировать

Это довольно основной материал, и я очень рекомендую просто reading through the documentation и walking through some tutorials, но я постараюсь помочь в любом случае:

Основываясь на ваш комментарий ниже, вы хотите следующее (который, по общему признанию, является довольно расплывчатым):

  1. получить один бит данных из запроса
  2. проход, который переменной (вы имеете в виду «присвоить, что к переменной»)
  3. проверить, что бит данных? из базы данных

Просьба ознакомиться с Database class documentation. Это действительно зависит от конкретного запроса, который вы используете, и от каких данных вы хотите от него. На основании приведенного выше примера, это может выглядеть примерно так, как это в некоторой функции в модели (имейте в виду, что это совершенно произвольно, как я понятия не имею, что ваш запрос выглядит или то, что данные, которые вы хотите):

// Get a single entry record 
$query = $this->db->get('entries', 1); 

// Did the query return a single record? 
if($query->num_rows() === 1){ 

    // It returned a result 
    // Get a single value from the record and assign it to a variable 
    $your_variable = $this->query()->row()->SOME_VALUE_FROM_RETURNED_RECORD; 

    // "Validate" the variable. 
    // This is incredibly vague, but you do whatever you want with the value here 
    // e.g. pass it to some "validator" function, return it to the controller, etc. 
    if($your_variable == $some_other_value){ 
     // It validated! 
    } else { 
     // It did not validate 
    } 

} else { 
    // It did not return any results 
} 
+0

Спасибо, Колин за вашу помощь. Просто пытаюсь объяснить это немного глубже. Я хотел получить один бит данных из запроса и передать его переменной, чтобы не использовать ее для передачи ее в представление, но для проверки этого бита данных из базы данных. поэтому ... Получите один бит данных из проверки базы данных, если $ data = $ data .. –

+0

@AlexStacey: Посмотрите мое редактирование выше. –

+0

спасибо, очень оценен. Очень полезно. –

Смежные вопросы