当前位置: 首页>編程日記>正文

SuiteCRM Beans(model)

SuiteCRM Beans(model)

SuiteCRM遵循MVC模式,因此也具有模型(M)的概念。
Beans就是SuiteCRM中的模型,它的实现逻辑与咱们平常使用的Model类是一样的,下面我们就来看看SuiteCRM中的Beans是如何使用的。

一、创建bean
1.1如何创建一个新的bean
/*** BeanFactory Bean的基类* aaaa_A1是我建的一个模块(对应数据表)*/
$a1Bean = BeanFactory::newBean('aaaa_A1');

就是如此的简单,这样的话,我们就拥有了一个可以操作数据的bean类了。

注:当你在控制器中使用BeanFactory这个工厂类的时候,无需引入,就可以直接使用。它的位置在 /data/BeanFactory.php

1.2如何获取一个指定的bean
/*** BeanFactory Bean的基类* aaaa_A1是我建的一个模块(对应数据表)* 4344b1cb-0c5f-7729-1523-5f30d32687b0 为数据id,这是个可选参数*/
$a1Bean = BeanFactory::getBean('aaaa_A1', '4344b1cb-0c5f-7729-1523-5f30d32687b0');

上面代码的功能是:创建bean对象的同时,绑定了某条数据,这样就可以直接对该条数据进行任何操作了。
getBean的第二个参数(数据id)是可选的,传了就是绑定了单条数据,如果不传的话,创建出来的就是一个全新的bean,等同于newBean方法。

接下来,就是最激动人心的时刻了…

二、各种猛如虎的操作(CURD)
2.1查询
1、get_list — 列表查询(可分页)
$a1Bean = BeanFactory::newBean('aaaa_A1');
$data = $a1Bean->get_list($order_by = "date_modified DESC", 	// 排序方式$where = "modified_user_id = 2", 	// 查询条件$row_offset = 0,				 	// 从第几条开始取数据$limit = 2,					 		// 返回的最大记录数。-1表示没有限制$max = 2,							// 每页最多可返回的条目数。-1表示默认的最大值$show_deleted = 0 // 表示是否显示被删除的数据,有三个取值 0(不显示删除数据) 1(只显示删除数据) -1(显示全部),默认为0。
);

get_list方法返回一个数组,包括查询的结果 ,分页等信息。

// 返回的数据格式
Array
([list] => Array()			// 查询结果数据,可直接遍历[row_count] => 2			// 结果中的总行数[next_offset] => 2			// 下一页的偏移量;如果没有其他页,则为-1。	[previous_offset] => 2		// 上一页的偏移量;如果是第一页,则为-1。[current_offset] => 0		// 当前结果的偏移量;从0开始
)
2、get_full_list — 列表查询(无分页)

当你不需要数据分页时,可以使用该方法。

$a1Bean = BeanFactory::newBean('aaaa_A1');
$data = $a1Bean->get_full_list($order_by = "date_modified DESC", 			// 排序方式$where = "aaaa_A1.modified_user_id = 1", 	// 查询条件$check_dates=false,							// 是否转换时间显示格式,取值 true/false,默认为false$show_deleted = 0
);

该方法返回的结果就是一个包含查询结果的二维数组。

3、retrieve_by_string_fields — 查询单条数据
$a1Bean = BeanFactory::newBean('aaaa_A1');
$data= $a1Bean->retrieve_by_string_fields(// 查询条件$fields_array = array('modified_user_id' => 2,'name' => '测试'),$encode = true,		// 结果是否应为HTML编码$deleted = false	// 是否添加删除的过滤器
);

resolve_by_string_fields返回单个结果集,如果没有匹配结果,则返回null。

2.2新增与更新

SuiteCRM中,新增与更新数据都使用save方法,它是通过检索id字段来区分新增与更新的。

1、新增
$a1Bean = BeanFactory::newBean('aaaa_A1');
$a1Bean->name = '小明';
$a1Bean->description= '测试';
$res = $a1Bean->save();
2、更新
$a1Bean = BeanFactory::newBean('aaaa_A1');
$a1Bean->id= '4344b1cb-0c5f-7729-1523-5f30d32687b0';	// 表中已有的id,若id不存在,则更新失败
$a1Bean->name = '小明';
$a1Bean->description= '测试';
$res = $a1Bean->save();

通过这两段代码我们可以看出,更新比新增多个一行指定id的代码。
当然我们还有另外一种方法,就是getBean,我觉得用它来做更新操作,更适合。

$a1Bean = BeanFactory::getBean('aaaa_A1', '4344b1cb-0c5f-7729-1523-5f30d32687b0');
$a1Bean->name = '测试测试';
$res = $a1Bean->save();
2.3删除

SuiteCRM中,数据删除是逻辑删除,将deleted字段设置为1,即为删除。
SuiteCRM通过mark_deleted方法实现这一功能。

$a1Bean = BeanFactory::newBean('aaaa_A1');
$id = '4344b1cb-0c5f-7729-1523-5f30d32687b0';
$a1Bean->mark_deleted($id);
$res = $a1Bean->save();

和更新一样,我们也可以通过getBean来实现删除。

$a1Bean= BeanFactory::getBean('aaaa_A1', '4344b1cb-0c5f-7729-1523-5f30d32687b0');
$a1Bean->mark_deleted();
$res = $a1Bean->save();


https://www.fengoutiyan.com/post/15579.html

相关文章:

  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機