Я хочу передать значение из моего представления в мою модель. Я хочу передать значение $ plate моей модели, чтобы получить все данные, которые будут соответствовать табличке $. вот мой код:
Посмотреть
<a href="<?=base_url()?>services/view_services?plate=<?php echo $plate; ?>">
<button type="button" class="btn btn-primary">View Services</button>
контроллер
public function view_services()
{
$data['results'] = $this->Services_model->fetch_car_services($config['per_page'], $page);
$this->load->view('car_services', $data);
}
модель
public function fetch_car_services($plate)
{
$this->db->where('car_plate_number =', $plate);
$this->db->order_by('created_datetime', 'DESC');
$query = $this->db->get('service_jobs');
$result = $query->result();
$this->db->save_queries = false;
return $result;
}
он, похоже, не работает. Заранее спасибо.
Вы должны каким-то образом получить переменную, используя свой метод:
//services/view_services?plate=someplate
public function view_services() {
$plate = $this->input->get('plate');
if (is_null($plate)) {
// error!
}
$data['results'] = $this->Services_model->fetch_car_services($plate);
$this->load->view('car_services', $data);
}
лучший способ делать вещи:
//services/view_services/someplate
public function view_services($plate = null) {
if (is_null($plate)) {
// error!
}
$data['results'] = $this->Services_model->fetch_car_services($plate);
$this->load->view('car_services', $data);
}
Пожалуйста, проверьте наличие ошибок! Я уже сделал половину работы для вас здесь, вам просто нужно выяснить, как вы хотите справиться с ними. Это также включает проверку, если num_rows > 0
в вашей модели или count($data['results']) > 0
в вашем контроллере и отправка ошибки, если это так. Ваш foreach в вашем представлении не сработает, если вы этого не сделаете.
Посмотреть:
<a href="<?php echo site_url('services/view_services/').$plate; ?>"></a>
контроллер:
public function view_services($plate)
{
$data['results'] = $this->Services_model->fetch_car_services($config['per_page'], $page);
$this->load->view('car_services', $data);
}