Kết quả 1 đến 8 của 8
  1. #1
    CI New lovezee's Avatar
    Ngày tham gia
    29-03-2014
    Bài viết
    4
    Cảm ơn
    0
    Được cảm ơn 0 trong 0 bài viết

    Vấn đề về model khi load module HMVC

    Các bạn cho mình hỏi, khi load 1 module trong HMVC thì module đó có thể thao tác với model được không ?
    Cấu trúc thư mục mình như sau :
    -Modules
    --Home
    ---Controllers
    ----Home.php
    --ABC
    ---Controllers
    ----ABC.php
    ---Models
    ----ABC_Model.php
    ---Views
    ----partial_view.php

    Trong file Home.php mình load module ABC, function xyz, ở function xyz có load model ABC_Model, dạng như sau :
    PHP Code:
    //Home.php
    function index() {
     echo 
    modules::run('ABC/xyz');

    PHP Code:
    //ABC.php
    function xyz() {
     
    $this->load->model('abc_model');
     
    $data $this->abc_model->getData();
     
    $this->load->view('partial_view');

    Khi test thử index.php/Home thì nó báo lỗi :
    Code:
    Message: Undefined property: ABC::$abc_model
    Filename: controllers/ABC.php
    Mặc dù nó đã load model được rồi (vì không báo lỗi dòng load) nhưng nó không nhận model. Miêu tả của mình có hơi rối, mong các bạn giúp đỡ !

  2. #2
    CI New tinapc's Avatar
    Ngày tham gia
    30-11-2013
    Bài viết
    16
    Cảm ơn
    0
    Được cảm ơn 6 trong 3 bài viết
    Chào bạn, Hoàn toàn có thể load model trong controller với HMVC.
    Tôi nghĩ cấu trúc file model của bạn có vấn đề.
    Bạn chắc rằng cấu trúc file model của bạn giống như sau??

    PHP Code:
    class Abc_Model extends CI_Model {    
       function 
    __construct() {
            
    parent::__construct();    
       }
        
       function 
    test(){        
           return 
    "My test model";    
      }

    Freelancer fulltime with Codeigniter framework + Yii framework, psd to html, Boostrap twitter, jquery

  3. #3
    CI New lovezee's Avatar
    Ngày tham gia
    29-03-2014
    Bài viết
    4
    Cảm ơn
    0
    Được cảm ơn 0 trong 0 bài viết
    Dĩ nhiên là chính xác vì mình cũng nghĩ qua về nguyên nhân đó nên đã test rất kỹ trong việc type, đặt tên file...
    Ở trang chủ của nhà phát triển extension này (https://bitbucket.org/wiredesignz/co...xtensions-hmvc) có đoạn :

    Code:
    To use HMVC functionality, such as Modules::run(), controllers must extend the MX_Controller class.
    To use Modular Separation only, without HMVC, controllers will extend the CodeIgniter Controller class.
    Do chưa bao giờ tiếp xúc với HMVC nên mình không hiểu rõ đoạn trên lắm (các function của HMVC là gì?), có phải chính xác là Controller phải kế thừa từ MX_Controller chứ không phải CI_Controller ? Mình cũng đã thử nhưng nó chỉ hiện ra trang trắng, mặc dù trong config/config.php đã cấu hình $config['subclass_prefix'] = 'MX_'

    Mong các bạn giúp đỡ !

    PS: Hiện tại mình dùng code CI bản mới nhất, 3rd gồm CI-modular-extensions-HMVC (link trên) và Template Library của Colin Williams.

  4. #4
    CI New tinapc's Avatar
    Ngày tham gia
    30-11-2013
    Bài viết
    16
    Cảm ơn
    0
    Được cảm ơn 6 trong 3 bài viết
    To use HMVC functionality, such as Modules::run(), controllers must extend the MX_Controller class.
    <== có nghĩa là những controller trong module phải extend từ MX_Controller thay vì CI_Controller
    To use Modular Separation only, without HMVC, controllers will extend the CodeIgniter Controller class.
    <== Là khi bạn sử dụng mô hình MVC mặc định của CI, những controller này nằm ở thư mục application/controllers

    Bạn có thể gởi cái source của bạn lên đây mình check đc không. Vì mình đã thử như ý của bạn và code chạy tốt nhưng không hiểu sao bạn có vấn đề.
    Freelancer fulltime with Codeigniter framework + Yii framework, psd to html, Boostrap twitter, jquery

  5. #5
    CI New tinapc's Avatar
    Ngày tham gia
    30-11-2013
    Bài viết
    16
    Cảm ơn
    0
    Được cảm ơn 6 trong 3 bài viết
    Chào bạn, Tôi có đính kèm 1 source code và đã test chạy thành công. Bạn tải về thảm khảo nhé
    Tập tin đính kèm Tập tin đính kèm
    Freelancer fulltime with Codeigniter framework + Yii framework, psd to html, Boostrap twitter, jquery

  6. #6
    CI New lovezee's Avatar
    Ngày tham gia
    29-03-2014
    Bài viết
    4
    Cảm ơn
    0
    Được cảm ơn 0 trong 0 bài viết
    Cảm ơn bạn, mình đã down source bạn về test thì đúng là nó chạy được (sau khi bỏ 1 số cái autoload :D). Mình có so sánh thử thì thấy không khác biệt nhiều, bạn check dùm source của mình nhé. Rối từ tối qua nên cứ xóa sửa mãi không biết trục trặc ở đâu nữa.

    Một lần nữa cảm ơn bạn rất nhiều !

    Edit : Hì, thay tất cả CI_Controller thành MX_Controller là xong. Hôm qua mình thử thay thì nó báo lỗi nên không để ý test lại, nguyên nhân là do hôm qua mình chưa config module_location trong config.
    Cảm ơn bạn, chúc một buổi tối vui vẻ :)
    Tập tin đính kèm Tập tin đính kèm
    Sửa lần cuối bởi lovezee; 29-03-2014 lúc 08:31 PM.

  7. #7
    CI New tinapc's Avatar
    Ngày tham gia
    30-11-2013
    Bài viết
    16
    Cảm ơn
    0
    Được cảm ơn 6 trong 3 bài viết
    Chào bạn,
    Mình đã xem qua code của bạn và đã xác định dc vấn đề nằm ở chỗ Controller.
    Như tài liệu có nói "To use HMVC functionality, such as Modules::run(), controllers must extend the MX_Controller class."
    Tất cả Controller của modules phải extends từ thằng MX_Controller vì vậy bạn vui lòng sửa lại như sau:
    Ví dụ ở Home controller - hiện tại nó extends CI_Contrller--> điều này là sai. Vì vậy bạn cần sữa lại là extends MX_Controller
    Tương tự những Controller khác cũng vậy.

    Hi vọng là bạn hiểu. Chúc bạn thành công
    Freelancer fulltime with Codeigniter framework + Yii framework, psd to html, Boostrap twitter, jquery

  8. #8
    CI New lovezee's Avatar
    Ngày tham gia
    29-03-2014
    Bài viết
    4
    Cảm ơn
    0
    Được cảm ơn 0 trong 0 bài viết
    Cảm ơn bạn, mình đã hiểu :)

Chia sẽ và Bình Luận chủ đề Vấn đề về model khi load module HMVC trên facebook

Các Chủ đề tương tự

  1. module codeigniter
    Bởi girlthethao trong diễn đàn Turtorial
    Trả lời: 2
    Bài cuối: 03-07-2014, 11:29 AM
  2. Codeigniter Framework: Tương tác cơ sở dữ liệu trên model
    Bởi tinhphaistc trong diễn đàn Turtorial
    Trả lời: 3
    Bài cuối: 11-02-2014, 11:03 AM
  3. overrideload model codeinigter
    Bởi timhieu trong diễn đàn Hỏi đáp
    Trả lời: 7
    Bài cuối: 04-09-2013, 08:15 AM
  4. [Hỏi] load view trong master template HMVC
    Bởi oaipro trong diễn đàn Hỏi đáp
    Trả lời: 1
    Bài cuối: 27-04-2013, 03:08 PM
  5. Include 1 module vào trang index
    Bởi oaipro trong diễn đàn Hỏi đáp
    Trả lời: 1
    Bài cuối: 14-04-2013, 09:24 AM

Các từ khóa xuất hiện trên google của chủ đề

su dung hmvc template phil sturgeon

Tag của Chủ đề này - Hãy Thêm Tags Để bài viết nhanh lên top google

Quyền viết bài

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