Trong M .odel V .iew C thiết lập .ontroller như CodeIgniter Views là những yếu tố giao diện người dùng. Họ không nên phân tích cú pháp kết quả.
Nếu tôi không nhầm, những gì bạn đang tìm kiếm để làm là dữ liệu đường chuyền từ www.yoursite.com/index.php/form
để www.yoursite.com/index.php/search
Trong php không có cấu trúc, bạn có thể có một form.html
với một hình thức hành động của search.php
. Người dùng sẽ điều hướng đến yoursite.com/form.html
, gọi số yoursite.com/search.php
, có thể chuyển hướng đến yoursite.com/results.php
.
Trong CodeIgniter (và, theo như tôi được biết, trong bất kỳ hệ thống MVC, bất kể ngôn ngữ) của bạn Controller, Form
gọi một chức năng mà tải các form.html
Viewvào chính và sau đó chạy nó. View tạo mã (thường là HTML, nhưng không nhất thiết) mà người dùng tương tác với. Khi người dùng thực hiện một yêu cầu mà View không thể xử lý (yêu cầu cho nhiều dữ liệu hơn hoặc một trang khác), nó sẽ chuyển yêu cầu đó trở lại Controller, nó sẽ nạp nhiều dữ liệu hơn hoặc một View khác.
Nói cách khác, Chế độ xem xác định cách dữ liệu sẽ được hiển thị. Bộ điều khiển ánh xạ yêu cầu Chế độ xem.
Sẽ phức tạp hơn một chút khi bạn muốn có dữ liệu phức tạp và/hoặc thay đổi được hiển thị trong chế độ xem. Để duy trì separation of concerns mà MVC yêu cầu CodeIgniter cũng cung cấp cho bạn Models.
Mô hình chịu trách nhiệm cho phần khó nhất của bất kỳ ứng dụng web nào - quản lý luồng dữ liệu. Chúng chứa các phương thức để đọc dữ liệu, ghi dữ liệu và quan trọng nhất là các phương thức để đảm bảo tính toàn vẹn dữ liệu. Nói cách khác Mô hình nên:
- Đảm bảo rằng dữ liệu có định dạng đúng.
- Đảm bảo rằng dữ liệu không chứa gì (độc hại hoặc cách khác) có thể phá vỡ môi trường được định trước.
- Chiếm hữu phương pháp C .reating, R .eading, U .pdating, và D .eleting dữ liệu trong các khó khăn trên.
Akelos có đồ họa tốt đẻ ra các thành phần của MVC:
Request - Response http://svn.akelos.org/trunk/docs/images/akelos_mvc.png
Nói như vậy, đơn giản nhất (đọc "dễ nhất", không phải "mở rộng nhất") cách để thực hiện những gì bạn muốn làm là:
function Form()
{
parent::Controller();
}
function index()
{
$this->load->view('form');
}
function search()
{
$term = $this->input->post('search');
/*
In order for this to work you will need to
change the method on your form.
(Since you do not specify a method in your form,
it will default to the *get* method -- and CodeIgniter
destroys the $_GET variable unless you change its
default settings.)
The *action* your form needs to have is
index.php/form/search/
*/
// Operate on your search data here.
// One possible way to do this:
$this->load->model('search_model');
$results_from_search = $this->search->find_data($term);
// Make sure your model properly escapes incoming data.
$this->load->view('results', $results_from_search);
}
Liên kết đã chết. Gương mặt buồn. –