ecmall的模型用法

2022-03-10 22:33:54 字數 3427 閱讀 2812

/*

除本基類檔案外,所有的模型類的類名的構造規則應該是模型名(首字母大寫)+model組成,檔名必須是模型名+.model組成

如有乙個使用者模型,模型名為user,則其檔名應為user.model.php,類名為usermodel

驗證規則和預設值

$required = (isset($_v['required']) && $_v['required']) ? true : false;

$type = isset($this->_autov[$_k]['type']) ? $this->_autov[$_k]['type'] : 'string';

$min = isset($this->_autov[$_k]['min']) ? $this->_autov[$_k]['min'] : 0;

$max = isset($this->_autov[$_k]['max']) ? $this->_autov[$_k]['max'] : 0;

$filter = isset($this->_autov[$_k]['filter']) ? $this->_autov[$_k]['filter'] : ''; //過濾器支援多個,使用「,」隔開

$valid= isset($this->_autov[$_k]['valid']) ? $this->_autov[$_k]['valid'] : ''; //自定義驗證規則

$reg = isset($this->_autov[$_k]['reg']) ? $this->_autov[$_k]['reg'] : '';

$default = isset($this->_autov[$_k]['default']) ? $this->_autov[$_k]['default'] : '';

find()方法的引數

$arr = array(

'include' => array(), //這個不知道是做什麼的,有待研究

'join'=> '', //left join 多個時使用","隔開

'conditions' => '', //where 條件,如果是數字就當做主鍵的值,如果是字串就是sql,如果是陣列就被當做in子句來使用即可,如果需要使用子查詢,就自己寫sql吧、

'order' => '',

'fields' => '', //字段

'limit' => '',

'count' => false,

'index_key' => $this->prikey,

);關聯模型的關係配置筆記

1、如果有belang_to 和 多對多的關係需要設定反向關係

2、依賴的設定使用在模型的資料刪除上,如果資料被其他資料依賴,資料刪除後,依賴也應該刪除的

新增資料每條記錄必須為乙個陣列

乙個data的例子

$data = array(

array(

'title' => '這是乙個例子!',

'code'=>'test',

'cate_id'=> '0'

),array(

'title' => '這又是乙個例子!',

'code'=>'test',

'cate_id'=> '0'));

*/

自己配置模型的注意事項:

1、成員初始化,這幾個變數是必須要設定的

var $table  = 'article';  定義表名

var $prikey = 'article_id'; //定義主要鍵

var $_name = 'article'; //定義模型名稱

2、初始化自動驗證,規則如上面所示

/*

新增編輯時自動驗證

*/var $_autov =array(

'title' =>array(

'required' => true, //

必填 'min' => 1, //

最短1個字元

'max' => 100, //

最長100個字元

'filter' => 'trim',

),'sort_order' =>array(

'filter' => 'intval',

),'cate_id' =>array(

'min' => 1,

'required' => true, //

必填),

'link' =>array(

'filter' => 'trim',

'max' => 255, //

最長100個字元

), );

3、關係的規則

var $_relation =array(

//一篇文章只能屬於乙個店鋪

'belongs_to_store' =>array(

'model' => 'store',

'type' =>belongs_to,

'foreign_key' => 'store_id',

'reverse' => 'has_article',

),//一篇文章只能屬於乙個文章分類

'belongs_to_acategory' =>array(

'model' => 'acategory',

'type' =>belongs_to,

'foreign_key' => 'cate_id',

'reverse' => 'has_article', //

對應acategory

),

//乙個文章對應多個上傳檔案

'has_uploadedfile' =>array(

'model' => 'uploadedfile',

'type' =>has_many,

'foreign_key' => 'item_id',

'ext_limit' => array('belong' =>belong_article),

'dependent' => true

), );

關係模型需要注意的幾個地方就是:

1、關係採用鏈結方式全部都是使用左聯結的方式處理的。

2、屬於關係和多對多關係必須指明反響關係

3、has_one和has_many關係後面可以使用關係dependent,用於刪除資料時,自動刪除依賴,比如文章分類擁有多個文章,依賴關係配置為 true刪除分類的時候,自動刪除分類下面的文章。

Ecmall系統自帶的分頁功能

在ecmall的二次開發中,分頁是必不可少的。這個系統已經自帶了分頁功能,下面來看看如何使用這個分頁。下面是乙個自定義的類,用於檢視訂單的詳細情況。關鍵在於get order data 這個方法,分頁的使用也在這個方法的內部了。應該有的注釋都有了,應該會比較容易懂,我不就多說了。phpdefine ...

DACE Kriging 模型用法

1.關於theta取值 dace工具箱內dacefit函式自帶theta 優化,只需在初始設定 theta0 lob 和upb即可。猜測初始值theta0的選取,不影響最終結果。但是影響計算效率和加點數。dace工具箱手冊內給的算例為 theta 10 10 lob 1e 1 1e 1 upb 20...

ECMall 中URL體系的改造思路

ec系列的產品都已停止更新很久了,但其對中國中小電商企業的影響無疑是巨大的。很多公司,都是直接拿來即改,改了即用。但他們都有個問題,是比較傳統的開發模式過來的,尤其ecshop。ecmall系統的 結構實際上則可認為已經到了比較體系話的程度。由於看到很多人在用ecmall,所以根據自己的經驗,提出一...