> > > Zend Framework 23: Khắc phục lỗi Model, Form not found trong ứng dụng

Zend Framework 23: Khắc phục lỗi Model, Form not found trong ứng dụng

Hiện nay rất nhiều bạn gặp phải 1 vấn đề, đó là tạo mới 1 form hoặc model, khi gọi trong controller ứng dụng báo lỗi not found(không gọi được class model, form).
Gel bôi trơn K-Y dành cho nữ
 
Máy tự động Bú Mút Youcups Solider
 
Máy massage điểm G Prince
 

Bán tài liệu zend tiếng việt: 500.000 vnđ (500 k)

Hotline: 0933.381.903
Yahoo: Mua bán online
Email: songthan.hctm@gmail.com

Trong tutorial này sẽ hướng dẫn chi tiết khắc phục tình trạng này:

Trước tiên chúng ta sẽ nói về mô hình 1 module:
 

PHP Code:
application
--------------------configs
-----------------------------application.ini
--------------------Bootstrap.php
--------------------controllers
----------------------------IndexController.php
--------------------models
-----------------------------Product.php
-----------------------------Contact.php
--------------------forms => class nameApplication_Form_...
-----------------------------
Login.php
-----------------------------Register.php 

file models/Product.php sẽ có code như sau:

 

PHP Code:
    <?php
    
class Model_Product extends Zend_Db_Table{

        public function 
getProduct(){
            echo 
'<br>' .  __CLASS__ ' - ' .__FUNCTION__;
        }
    }


file /forms/Login.php sẽ có code như sau:
 

PHP Code:
    <?php
    
class Form_Login extends Zend_Db_Table{

        public function 
__init(){
            echo 
'<br>' .  __CLASS__ ' - ' .__FUNCTION__;
        }
    }


Để load được model và form vào controller chúng ta cần thêm 1 đoạn cấu hình ở file Boostrap.php
 

PHP Code:
    <?php
    
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
       protected function 
_initAutoload() {
          
$autoloader = new Zend_Application_Module_Autoloader(
                         array (
'namespace' => '',
                               
'basePath' => APPLICATION_PATH )
                         );
                 
//namespace: tên namespace, nếu ko có sẽ là ''
                     //APPLICATION_PATH: đường dẫn tuyệt đối đến thư mục application
       
}
    }



Mô hình multi module:

Có cấu trúc thư mục như sau:
 

PHP Code:
 application
    
--------------------configs
    
-----------------------------application.ini
    
--------------------modules
    
-----------------------------default
    ----------------------------------------
controllers
    
------------------------------------------------IndexController.php
    
----------------------------------------models
    
-------------------------------------------------Product.php
    
-------------------------------------------------Contact.php
    
----------------------------------------forms
    
-------------------------------------------------Login.php
    
-------------------------------------------------Register.php
    
----------------------------------------Bootstrap.php
    
-------------------------------admin
    
----------------------------------------controllers
    
------------------------------------------------IndexController.php
    
----------------------------------------models
    
-------------------------------------------------Product.php
    
----------------------------------------forms
    
-------------------------------------------------Form.php
    
----------------------------------------Bootstrap.php
    
--------------------Bootstrap.php 



Khi đó file Model sẽ khai báo như sau

 

PHP Code:
    class <TenModule>_Model_<TenFile


Giả sử model Product.php ở module default

 

PHP Code:
    class Default_Model_Product extends Zend_Db_Table{
               protected 
$_name "product";
               protected 
$_primary "id";
    } 



Form sẽ khai báo như sau

 

PHP Code:
    class <TenModule>_Form_<TenFile


Giả sử Form Login.php ở module default
 

PHP Code:
    class Default_Form_Login{
       
    } 



Khi đó để load được model và form vào controller chúng ta cần vài bước như sau:

1) Trong file application.ini thêm đoạn code

 

PHP Code:
    resources.modules[] = "" 



2) Ở mỗi module thêm 1 file Bootstrap.php.
vd trong module default thì thêm vào 1 file Bootstrap.php như sau
 

PHP Code:
    <?php
    
class Default_Bootstrap extends Zend_Application_Module_Bootstrap{
       
    }