Bạn ghé thăm diễn đàn lần đầu? hãy đăng ký ngay bây giờ để tham gia.
  • Đăng nhập:

Chào mừng bạn đến với ITVNN FORUM - Diễn đàn công nghệ thông tin.

Nếu đây là lần đầu tiên bạn tham gia diễn đàn, xin mời bạn xem phần Hỏi/Ðáp để biết cách dùng diễn đàn. Để có thể tham gia thảo luận bạn phải đăng ký làm thành viên, click vào đây để đăng ký.


  • Partner Area
kết quả từ 1 tới 8 trên 8
Tăng kích thước phông chữ Giảm kích thước phông chữ
  1. #1
    filiallion's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Mar 2018
    Thành viên thứ
    117056
    Tuổi
    31
    Giới tính
    Bài gởi
    24
    Level: 14 [?]
    Experience: 4,552
    Next Level: 5,517
    Cảm ơn 0
    Cảm ơn 0 lần / 0 Bài viết

    Default Tìm hiểu CodeIgniter framework  

    Sau khi các bạn đọc và học theo hai bài hướng dẫn về lập trình PHP từ <strong>cơ bản</strong> đến <strong>nâng cao</strong> của tôi thông qua việc hoàn thiện website giới thiệu sản phẩm thì ngay bây giờ, các bạn có thể tiếp tục tìm hiểu về một PHP framework rất phổ biến và dễ sử dụng hiện nay là CodeIgniter. Về bài hướng dẫn này tôi chỉ hướng dẫn các bạn các bước để cài đặt cũng như sử dụng các thành phần chính của CodeIgniter mà thôi. Để phát triển một website bằng CodeIgniter thì các bạn còn phải tìm hiểu thêm nhiều hơn nữa và tôi cũng sẽ viết tiếp loạt bài hướng dẫn các bạn phát triển một website hoàn chỉnh với CodeIgniter framework.<br>
    <br>
    Bài hướng dẫn này được đăng trên trang Google+ của tôi tại địa chỉ<strong> <a href="https://plus.google.com/103116221369826139041" target="_blank">plus[dot]google[dot]com/103116221369826139041</a></strong>. Mọi thắc mắc, hỏi đáp các bạn vui lòng phản hồi trên trang Google+ của tôi hoặc chát với tôi qua Hangouts để được hỗ trợ sớm nhất. Tại topic này, tôi chỉ ưu tiên việc đăng bài chứ không hỗ trợ các bạn.<br>
    <br>
    Trong quá trình theo dõi bài hướng dẫn các bạn có thể tham gia đóng góp ý kiến để bài viết ngày càng hoàn thiện hơn.<br>
    <br>
    <em>Chân thành cảm ơn sự quan tâm của các bạn!</em>

  2. #2
    filiallion's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Mar 2018
    Thành viên thứ
    117056
    Tuổi
    31
    Giới tính
    Bài gởi
    24
    Level: 14 [?]
    Experience: 4,552
    Next Level: 5,517
    Cảm ơn 0
    Cảm ơn 0 lần / 0 Bài viết

    Default

    GIỚI THIỆU (PHẦN 1)

    Nội dung bài hướng dẫn này do tôi biên soạn lại từ tài liệu của CodeIgniter tại địa chỉ http[://]www[.]codeigniter[.]com/user_guide.

    CodeIgniter là một mã nguồn mở dùng để phát triển ứng dụng web trên nền tảng ngôn ngữ lập trình PHP. Nó cho phép các nhà phát triển xây dựng một ứng dụng web nhanh hơn so với việc viết mã hỗn tạp ngay từ đầu bằng cách cung cấp một bộ thư viện đầy đủ cho các tác vụ thông thường, cũng như cung cấp một mô hình tương tác đơn giản và dễ hiểu cho việc kết nối tới những bộ thư viện đó. Phiên bản chính thức đầu tiên của CodeIgniter được công bố vào ngày 28 tháng 02 năm 2006. Phiên bản mới nhất cho tới lúc tôi viết bài hướng dẫn này là 3.0 được công bố chính thức vào ngày 30 tháng 03 năm 2015.

    CodeIgniter cũng mang một số các khái niệm đặc thù và các tính năng cơ bản của các mô hình MVC khác:

    - Hỗ trợ kết nối và tương tác đa nền tảng cơ sở dữ liệu.
    - Tương tác với cơ sở dữ liệu thông qua active records.
    - Định dạng, chuẩn hóa form và dữ liệu đầu vào.
    - Hỗ trợ bộ đệm toàn trang (Full page caching) để tăng tốc độ thực thi và giảm tải tối thiểu cho máy chủ.
    - Bảo mật và bộ lọc XSS.
    - Quản lí session.
    - Hỗ trợ template engine hoặc sử dụng chính PHP tags để điều hướng trong views.
    - Hỗ trợ search-engine friendly URLs, application profiling, hooks, các lớp ngoại (Class extensions)...

    Trong số các mô hình MVC framework, CodeIgniter có các ưu điểm sau:

    - Mô hình code nhẹ cho hệ thống, cải thiện tốc độ thực thi.
    - Đơn giản trong việc cài đặt, cấu hình và cấu trúc thư mục.
    - Hỗ trợ bộ đệm toàn trang giúp tăng tốc độ thực thi và giảm tải cho máy chủ.
    - Mềm dẻo trong việc định tuyến URI (URI routing).
    - Hỗ trợ error logging.

    CodeIgniter được tích hợp thêm vào nhiều lớp thư viện hữu ích khác như:

    - Bảo mật và bộ lọc XSS.
    - Gửi email, hỗ trợ đính kèm, HTML/Text email, đa giao thức(SMTP, sendmail, mail) và các thứ khác.
    - Thư viện chỉnh sửa ảnh (Cắt ảnh, thay đổi kích thước, xoay ảnh, v.v..). Hỗ trợ GD, ImageMagick, và NetPBM.
    - Upload file.
    - Tương tác với máy chủ thông qua giao thức FTP.
    - Phân trang tự động (Pagination).
    - Mã hóa dữ liệu (Data encryption).
    - Đo lường tốc độ thực thi (Benchmarking).
    - Application profiling.
    - Lịch (Calendar).
    - User agent.
    - Nén (Zip encoding).
    - Trackback.
    - XML-RPC library.
    - Unit testing.
    - Search-engine friendly URLs.
    - Một lượng lớn các hàm hỗ trợ (Helper).
    - Và rất nhiều các thư viện khác.

    Các bạn cần lưu ý, phiên bản CodeIgniter 3.0 hiện tại yêu cầu phiên bản PHP 5.4+. Tuy nhiên, CodeIgniter 3.0 vẫn "hoạt động được" với phiên bản PHP 5.2.4+ nhưng sẽ không tối ưu về bảo mật cũng như một số tính năng không thể hoạt động.

  3. #3
    filiallion's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Mar 2018
    Thành viên thứ
    117056
    Tuổi
    31
    Giới tính
    Bài gởi
    24
    Level: 14 [?]
    Experience: 4,552
    Next Level: 5,517
    Cảm ơn 0
    Cảm ơn 0 lần / 0 Bài viết

    Default

    CÀI ĐẶT VÀ CẤU HÌNH (PHẦN 2)

    Để cài đặt CodeIgniter, các bạn thực hiện các bước sau:

    1. Tải bộ CodeIgniter framework tại địa chỉ http[://]www[.]codeigniter[.]com/download (Tải phiên bản 3.0).
    2. Giải nén gói CodeIgniter bạn sẽ được ba thư mục application, system, user_guide và file index[.]php. Trong đó, thư mục user_guide chứa tài liệu hướng dẫn sử dụng CodeIgniter. Toàn bộ gói CodeIgniter bạn chỉ quan tâm hai thư mục application, system và file index[.]php (Đây là gói thư viện CodeIgniter).
    3. Copy hai thư mục application, system và file index[.]php vào thư mục webroot của server local (Sau này gọi là localhost). Tôi sử dụng Wampserver làm server local nên tôi sẽ copy gói CodeIgniter vào thư mục [www].
    4. Truy cập địa chỉ http[://]localhost. Nếu hiện ra trang welcome của CodeIgniter thì bạn đã cài đặt thành công bước đầu.
    5. Để khai báo thông tin kết nối đến cơ sở dữ liệu (DB), các bạn mở file application/config/database[.]php và khai báo các thông tin sau:

    - $db['default']['hostname']: Tên host của cơ sở dữ liệu.
    - $db['default']['username']: Tài khoản kết nối tới cơ sở dữ liệu.
    - $db['default']['password']: Mật khẩu kết nối tới cơ sở dữ liệu.
    - $db['default']['database']: Tên cơ sở dữ liệu.
    - $db['default']['dbdriver']: Trình điều khiển cơ sở dữ liệu (MySQL, MySQLi, PDO,...).

    Các bạn cũng có thể tìm hiểu thêm một số thông tin cấu hình khác như:

    - $db['default']['dbprefix']: Prefix của các bảng dữ liệu (Ví dụ tbl_).
    - $db['default']['pconnect']: Kết nối DB sử dụng pconnect (Nên khai báo TRUE).
    - $db['default']['swap_pre']: Chuỗi thay thế cho dbprefix khi viết SQL (Ví dụ {PRE}).

    Ví dụ tôi tạo DB có tên "codeigniter_1" trên Wampserver với tài khoản kết nối MySQL là "root", mật khẩu là rỗng (Không có mật khẩu) thì các bạn khai báo thông tin cấu hình trong file application/config/database[.]php như sau:
    PHP Code: 
    $db['default'] = array(
        
    'dsn'       => '',
        
    'hostname' => 'localhost',
        
    'username' => 'root',
        
    'password' => '',
        
    'database' => 'codeigniter_1',
        
    'dbdriver' => 'mysql',
        
    'dbprefix' => '',
        
    'pconnect' => TRUE,
        
    'db_debug' => TRUE,
        
    'cache_on' => FALSE,
        
    'cachedir' => '',
        
    'char_set' => 'utf8',
        
    'dbcollat' => 'utf8_general_ci',
        
    'swap_pre' => '',
        
    'encrypt'  => FALSE,
        
    'compress' => FALSE,
        
    'stricton' => FALSE,
        
    'failover' => array(),
        
    'save_queries' => TRUE
    ); 
    Với khai báo trên, tôi không sử dụng dbprefix và cũng không bật cache.

    Với các bước trên, bạn đã cài đặt và cấu hình cơ bản cho website sử dụng CodeIgniter framework. Các cấu hình khác bạn có thể tìm hiểu thêm hoặc phản hồi lại tôi sẽ giải đáp cho các bạn.

  4. #4
    filiallion's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Mar 2018
    Thành viên thứ
    117056
    Tuổi
    31
    Giới tính
    Bài gởi
    24
    Level: 14 [?]
    Experience: 4,552
    Next Level: 5,517
    Cảm ơn 0
    Cảm ơn 0 lần / 0 Bài viết

    Default

    URLS (PHẦN 3)

    Trong phần này chúng ta sẽ tìm hiểu về cách CodeIgniter xử lý URL để gọi các controller, phương thức và tham số.

    Mặc định, URL của CodeIgniter được thiết kế thân thiện với các máy tìm kiếm, tối ưu SEO bằng cách sử dụng các phân khúc (Gọi là segment) thay vì sử dụng URL kiểu truyền thống (Query string).

    Bạn có thể xem một ví dụ về cách mà CodeIgniter thiết kế URL:

    http[://]localhost/news/title-news

    Tuy nhiên, kiểu URL truyền thống (Query string) các bạn cũng có thể sử dụng bằng cách cấu hình trong file application/config/config[.]php như sau:
    PHP Code: 
    $config['enable_query_strings'] = TRUE
    Bây giờ ta sẽ phân tích URL sau:

    http[://]localhost/index.php/class/function/id

    Với URL trên, ta có ba segment là class, function và id. Trong đó:

    - Segment class được CodeIgniter gọi tới controller tên là class (class cũng chính là một lớp).
    - Segment function được CodeIgniter gọi tới phương thức tên là function của lớp class ở trên.
    - Segment id được CodeIgniter hiểu như là một biến của phương thức function (Bạn cũng có thể truyền vào nhiều biến).

    Để làm việc với các segment của URL, CodeIgniter đã xây dựng sẳn các helper giúp bạn làm việc với các segment một cách dễ dàng, vì vậy bạn yên tâm về cách thiết kế URL này của CodeIgniter.

    Với URL trên, chúng ta thấy sự xuất hiện của index.php, các bạn cũng có thể bỏ index.php bằng cách sử dụng .htaccess. Nội dung file .htaccess như sau:
    Code: 
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
    Như vậy, sau khi sử dụng .htaccess ta sẽ có URL thân thiện sau:

    http[://]localhost/class/function/id

    Bạn thường thấy một số website có URL như sau:

    http[://]localhost/class/function/id.html (Phần đuôi .html).

    CodeIgniter cũng có thể làm được như vậy chỉ với một cấu hình đơn giản trong file application/config/config[.]php:
    PHP Code: 
    $config['url_suffix'] = '.html'
    Trong trường hợp bạn sử dụng kiểu URL truyền thống (Query string). Lúc đó, URL của chúng ta sẽ trở thành:

    http[://]localhost/index.php?c=class&m=function&id=id

    Khi đó bạn chỉ việc lấy giá trị các biến truyền trên URL bằng $_GET của PHP là được.

    Các bạn có thể tìm hiểu thêm về URLs tại địa chỉ http[://]www[.]codeigniter[.]com/user_guide/general/urls[.]html.

  5. #5
    filiallion's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Mar 2018
    Thành viên thứ
    117056
    Tuổi
    31
    Giới tính
    Bài gởi
    24
    Level: 14 [?]
    Experience: 4,552
    Next Level: 5,517
    Cảm ơn 0
    Cảm ơn 0 lần / 0 Bài viết

    Default

    CONTROLLERS (PHẦN 4)

    Controller có thể được xem như trái tim của toàn bộ ứng dụng. Nó điều khiển các yêu cầu HTTP từ người dùng. Tất cả mọi xử lý do người dùng tuơng tác đều được xử lý tại controller, controller sẽ làm nhiệm vụ giao tiếp giữa các yêu cầu người dùng (Hay chính xác hơn đó là các yêu cầu HTTP) với ứng dụng cũng như với DB.

    Controller là một lớp PHP mà nó được đặt tên sao cho có mối liên hệ với URL. Ví dụ với URL sau:

    http://localhost/blog

    Với URL trên thì CodeIgniter sẽ tìm và gọi controller blog (Blog.php) và các bạn có thể tìm thấy controller này trong thư mục application/controllers.

    * Chúng ta sẽ bắt đầu với ứng dụng đầu tiên "Hello World!":

    Tạo một controller có tên là blog và lưu trong thư mục application/controllers. Nội dung file application/controllers/Blog.php như sau:
    PHP Code: 
    <?php
    class Blog extends CI_Controller
    {
        public function 
    index()
        {
            echo 
    'Hello World!';
        }
    }
    Với controller được tạo ở trên, bạn sẽ gọi controller này với URL như sau:

    http://localhost/blog

    Lúc đó, kết quả mà chúng ta thấy sẽ là câu "Hello World!".

    Các bạn chú ý về cách tạo controller:

    - File controller phải được đặt tên trùng với tên controller (Kể cả chữ hoa và chữ thường hoặc dấu phân cách...) và được đặt trong thư mục application/controllers (Hoặc thư mục con trong application/controllers).
    - Tên controller (Chính xác hơn đó là tên của lớp) phải được viết hoa chữ cái đầu tiên như ví dụ mà bạn thấy (Blog) và controller phải được extends lớp CI_Controller.

    Bạn thấy với controller blog trên, ta chỉ cần truy cập URL http://localhost/blog là CodeIgniter sẽ tự động tìm đến controller blog để thự thi. Vậy tại sao CodeIgniter hiểu là sẽ gọi tới phương thức index?. Bởi vì với URL trên thì CodeIgniter đã hiểu ngầm rằng bạn đang truy cập tới controller blog và đang gọi phương thức index. Như vậy, có thể xem phương thức index là phương thức mà CodeIgniter sẽ tự động gọi nếu ta không truyền tên phương thức vào URL.

    Xét tiếp một ví dụ khác như sau:
    PHP Code: 
    <?php
    class Blog extends CI_Controller
    {
        public function 
    index()
        {
            echo 
    'Hello World!';
        }
        
        public function 
    comments()
        {
            echo 
    'Look at this!';
        }
    }
    Với ví dụ trên, nếu bạn muốn truy cập tới phương thức comments để in ra câu "Look at this!" thì bạn sẽ truy cập URL sau:

    http://localhost/blog/comments

    Với URL trên, CodeIgniter sẽ tự động tìm đến controller blog và gọi phương thức comments để in ra câu "Look at this!".

    Tiếp tục xét ví dụ khác, ví dụ lần này sẽ truyền vào phương thức comments biến $id như sau:
    PHP Code: 
    <?php
    class Blog extends CI_Controller
    {
        public function 
    index()
        {
            echo 
    'Hello World!';
        }
        
        public function 
    comments($id)
        {
            echo 
    'Look at this! ID is ' $id;
        }
    }
    Với ví dụ trên, các bạn truy cập URL sau:

    http://localhost/blog/comments/30

    Lúc này, kết quả sẽ là:
    Code: 
    Look at this! ID is 30
    Theo mặc định, CodeIgniter sẽ xử lý URL và gọi các controller (Cũng như phương thức tương ứng) như ta đã thấy ở trên. Ngoài ra, CodeIgniter còn cung cấp một "công cụ" giúp cho chúng ta hoàn toàn tùy biến việc thiết kế URL, đó là routes. Về routes tôi sẽ hướng dẫn trong một phần khác được đề cập sau. Với những gì tôi cung cấp về controller được trình bày ở trên chỉ mang tính cơ bản, các bạn có thể tìm hiểu thêm về controllers tại địa chỉ http://www.codeigniter.com/user_guid...ntrollers.html.

  6. #6
    filiallion's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Mar 2018
    Thành viên thứ
    117056
    Tuổi
    31
    Giới tính
    Bài gởi
    24
    Level: 14 [?]
    Experience: 4,552
    Next Level: 5,517
    Cảm ơn 0
    Cảm ơn 0 lần / 0 Bài viết

    Default

    VIEWS (PHẦN 5)

    View là một trang HTML trình bày giao diện như header, footer, sidebar... Bạn hiểu đơn giản, view chỉ là những file PHP chứa mã HTML định hình trang web (Có chèn code PHP để trình bày dữ liệu động). Thông thường, toàn bộ những gì bạn thấy trên trình duyệt thì đó được xem như là một view.

    Về cơ bản, view không thể được gọi trực tiếp mà nó luôn được gọi thông qua controller theo đúng mô hình MVC mà ta thường biết tới.

    Tạo file view cho controller blog ở phần 4 với nội dung như sau:
    Code: 
    <html>
    <head>
    <title>My Blog</title>
    </head>
    <body>
        Welcome to my Blog!
    </body>
    </html>
    Tất cả file view của ứng dụng sẽ được lưu trữ trong thư mục application/views và tên file phải hoàn toàn là chữ thường. Như vậy, với file view ở trên, tôi sẽ lưu với tên là blog-view.php trong thư mục application/views.

    View hoạt động được thông qua lệnh gọi từ controller. Để gọi view từ controller, bạn sử dụng cú pháp lệnh:
    Code: 
    $this->load->view('Tên_view');
    Tại phương thức index của controller blog, bạn chỉnh lại như sau:
    PHP Code: 
    public function index()
    {
        
    $this->load->view('blog-view');

    Khi bạn truy cập địa chỉ sau:

    http://localhost/blog

    Kết quả sẽ là:

    Welcome to my Blog!

    Bạn cũng có thể load nhiều view trong một phương thức của controller như ví dụ sau:
    PHP Code: 
    public function index()
    {
        
    $this->load->view('header-view');
        
    $this->load->view('blog-view');
        
    $this->load->view('footer-view');

    Trường hợp bạn tạo view bên trong thư mục con của thư mục application/views, bạn có thể sử dụng cú pháp lệnh sau để gọi view:
    Code: 
    $this->load->view('Thư_mục_con/Tên_view');
    ví dụ tôi đặt file blog-view.php ở trên trong thư mục application/views/blog, tôi sẽ điều chỉnh lại lệnh load view như sau:
    PHP Code: 
    $this->load->view('blog/blog-view'); 
    Toàn bộ quá trình xử lý tương tác dữ liệu đều được thực hiện ở controller (Trừ việc lấy dữ liệu từ DB là thực hiện ở model sẽ nói sau) nên kết quả trả về sẽ nằm trong controller. Vậy làm cách nào để truyền dữ liệu này ra ngoài view để có thể trình bày theo ý muốn? Với CodeIgniter thì công việc này rất đơn giản, các bạn chỉ việc gán toàn bộ các dữ liệu muốn truyền ra view vào một mãng và truyền vào tham số thứ hai của phương thức $this->load->view() như ví dụ dưới đây:
    PHP Code: 
    $data = array(
        
    'title' => 'My Title',
        
    'heading' => 'My Heading',
        
    'message' => 'My Message'
    );

    $this->load->view('blog-view'$data); 
    Với ví dụ trên, khi ra ngoài blog-view.php bạn sẽ có các biến $title, $heading và $message để sử dụng.

    Xét ví dụ hoàn chỉnh sau:

    Nội dung controller blog (File application/controllers/Blog.php) như sau:
    PHP Code: 
    <?php
    class Blog extends CI_Controller {
        function 
    index()
        {
            
    //Gán dữ liệu
            
    $data['title'] = 'Tiêu đề website';
            
    $data['messagge'] = 'Hello word!';
            
            
    //Load view
            
    $this->load->view('blog-view'$data);
        }
    }
    Nội dung view blog (File application/views/blog-view.php) như sau:
    PHP Code: 
    <html>
    <head>
    <title><?php echo $title?></title>
    </head>
    <body>
        <?php echo $messagge?>
    </body>
    </html>
    Khi bạn truy cập địa chỉ sau:

    http://localhost/blog

    Kết quả sẽ là:

    Hello word!

    Lưu ý: Chuỗi "Tiêu đề" thì xuất hiện trên thanh tiêu đề của trình duyệt.

    Khi dữ liệu được truyền từ controller ra view vẫn giữ nguyên kiểu dữ liệu. Ví dụ kiểu dữ liệu trong controller là chuỗi (String) thì ngoài view cũng sẽ là chuỗi. Tương tự, kiểu mãng (Array), kiểu đối tượng (Object)... khi truyền ra view vẫn giữ nguyên kiểu dữ liệu.

    Các bạn tìm hiểu thêm về views tại địa chỉ http://www.codeigniter.com/user_guid...ral/views.html.

  7. #7
    filiallion's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Mar 2018
    Thành viên thứ
    117056
    Tuổi
    31
    Giới tính
    Bài gởi
    24
    Level: 14 [?]
    Experience: 4,552
    Next Level: 5,517
    Cảm ơn 0
    Cảm ơn 0 lần / 0 Bài viết

    Default

    MODELS (PHẦN 6)

    Model là một lớp PHP được thiết kế để tương tác với DB. Chẳng hạn như khi các bạn viết một trang blog sử dụng CodeIgniter thì thường các bạn sẽ có các thao tác với DB như lấy, thêm, xóa, sửa dữ liệu và tất nhiên, vai trò của model là để thực hiện những công việc này.

    Xét ví dụ sau:
    PHP Code: 
    class Blog_model extends CI_Model
    {
        public 
    $title;
        public 
    $content;
        public 
    $date;
        
        public function 
    __construct()
        {
            
    parent::__construct();
        }
        
        public function 
    get_last_ten()
        {
            
    //Query
            
    $query $this->db->get('tbl_blog'10);
            
            
    //Lấy kết quả và trả về
            
    return $query->result();
        }
        
        public function 
    insert()
        {
            
    //Nhận dữ liệu post từ form
            
    $this->title $_POST['title'];
            
    $this->content $_POST['content'];
            
    $this->date time();
            
            
    //Thực hiện thêm mới
            
    $this->db->insert('tbl_blog'$this);
        }
        
        public function 
    update()
        {
            
    //Nhận dữ liệu post từ form
            
    $this->title $_POST['title'];
            
    $this->content $_POST['content'];
            
    $this->date time();
            
            
    //Thực hiện cập nhật
            
    $this->db->update('tbl_blog'$this, array('id'=>$_POST['id']));
        }

    Với ví dụ trên, model blog_model đã định nghĩa các phương thức get_last_ten, insert hay update. Tất cả các phương thức này đều tương tác với DB để lấy dữ liệu hay thêm mới, chỉnh sửa dữ liệu.

    Một model được tạo và đặt trong thư mục application/models. Lưu ý, tên file phải trùng với tên của lớp model (Kể cả chữ hoa và chữ thường hoặc dấu phân cách...). Với ví dụ trên thì ta sẽ có file application/models/Blog_model.php. Ngoài ra, lớp model phải extends CI_Model và phải có phương thức khởi tạo (__construct) với nội dung như ví dụ ở trên.

    Để sử dụng model trong controller, trước tiên bạn phải load model đó với cú pháp lệnh sau:
    Code: 
    $this->load->model('Tên_model');
    Ví dụ trong controller blog, các bạn muốn sử dụng blog_model ở phương thức index thì trong phương thức index sẽ phải load blog_model như sau:
    PHP Code: 
    public function index()
    {
        
    //Load blog_model
        
    $this->load->model('blog_model');
        
        
    //Gọi phương thức get_last_ten và gán vào mãng $data
        
    $data['list_last_ten'] = $this->blog_model->get_last_ten();
        
        
    //Load view
        
    $this->load->view('blog-view'$data);

    Trong ví dụ trên, ngoài cú pháp để load blog_model thì các bạn còn cần phải chú ý tới câu lệnh sau:
    PHP Code: 
    $data['list_last_ten'] = $this->blog_model->get_last_ten(); 
    Đây là câu lệnh gọi tới phương thức get_last_ten và gán cho $data['list_last_ten']. Như vậy, để gọi tới các phương thức được định nghĩa trong model, CodeIgniter đã thiết kế một cách gọi như sau:
    Code: 
    $this->Tên_model->Tên_phương_thức();
    Lưu ý, khi load model hoặc sử dụng model thì tên model phải viết chữ thường toàn bộ như ví dụ trên. Đây cũng là cách sử dụng chung cho các thư viện của CodeIgniter.

    Để làm việc với model, các bạn còn phải tìm hiểu thêm về thư viện DB mà tôi sẽ đề cập sau. Thư viện DB định nghĩa sẳn các phương thức tương tác an toàn với DB và có lẽ đây là một thư viện chứa nhiều phương thức nhất của CodeIgniter.

    Các bạn tìm hiểu thêm về models tại địa chỉ http://www.codeigniter.com/user_guid...al/models.html.

  8. #8
    filiallion's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Mar 2018
    Thành viên thứ
    117056
    Tuổi
    31
    Giới tính
    Bài gởi
    24
    Level: 14 [?]
    Experience: 4,552
    Next Level: 5,517
    Cảm ơn 0
    Cảm ơn 0 lần / 0 Bài viết

    Default

    Bài viết này tôi đã viết hoàn chỉnh gồm 14 phần tại địa chỉ http://gextend.net/threads/tim-hieu-...er-framework.3. Các bạn quan tâm có thể truy cập địa chỉ này đề xem toàn bộ bài viết.

    Cảm ơn các bạn đã quan tâm!


 

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Trả lời: 0
    Bài mới gởi: 12-01-2016, 04:15 PM
  2. Trả lời: 0
    Bài mới gởi: 01-03-2013, 09:38 AM
  3. Ai có tài liệu về Yii framework share cho mình với...
    By vanquyen2790 in forum Lập trình web
    Trả lời: 0
    Bài mới gởi: 27-08-2011, 07:51 PM
  4. [bd] WIdget Framework v1.0.3
    By s0ct0j0c in forum Add-ons and Modifications
    Trả lời: 0
    Bài mới gởi: 21-04-2011, 07:42 AM
  5. ZK Framework Project
    By phanleson in forum Projects
    Trả lời: 0
    Bài mới gởi: 30-06-2010, 08:34 PM

Tags for this Thread

Bookmarks

Quuyền Hạn Của Bạn

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể chỉnh sửa bài viết
  •