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();
据说是CRM市场最牛软件,从Siebel经过SugarCRM到现在的SuiteCRM Siebel 公司建于1993年,在2001年度财富杂志所发表的全球100个发展最快的企业名单上位居第二位,曾经红得发紫。 2012年 IBM用SugarCRM替代Siebel做为客户关系管理系统,在这一年里Siebel失去惠普、微软和IBM三大顶级客户。 SugarCRM 从2007 年起连续多年获得Bossie Awards年度最佳开源CRM软件,经历了高速成长,从开源慢慢变为只开一点点,直到不再维护开源版。 SuiteCRM 从2014开始, 2015 2016逐年替代了SugarCRM成为Bossie Awards最佳开源CRM软件。 SUITECRM是一个屡获殊荣的企业级的,强大的,可定制的,免费的开源客户关系管理应用程序。14种语言界面自由替换,世界上一些最大的公司是优先选择SUITECRM上一代像SALESFORCE的,SAP,SIEBEL和MICROSOFT应用程序。 SUITECRM提供具有大大降低了部署成本和(TCO)总拥有成本相同的功能,它是完全免费的 - 每行代码是开源的,永远都是。 我们正在改变CRM变得更好 - 更低的成本,更灵活,更快速的部署,没有厂商限制。 经过超过多年的发展,SuiteCRM仍然在不断实现创新及扩展。这位从SugarCRM手中接过开源CRM皇冠的继任者将账目管理、销售自动化与营销工具等从Sugar专业版中的功能加以整合。另外,它还提供丰富的扩展集合,从企业安全插件到搜索、社交媒体乃至Mail Chimp市场营销工具皆在其中。 它的最新版本提供深层报告选项,并经由Suite Spot这一新型分析工具实现。这款拖拽操作型报告设计工具允许大家创建并定义复杂的报告,而不要求使用者接受SQL培训或者具备相关知识。它的报告可以本地方式交付,或者推送至门户网站以进行共享。 而更为重要的是,SuiteCRM用户界面在设计中充分考虑到移动设备的实际情况,专门进行了小屏幕优化,同时提供可靠的信息同步机制。如果大家希望寻找一种功能及性能出众的销售流程与客户交互CRM解决方案,那么SuiteCRM绝对值得一试。 产品亮点 ● 开源、免费,多语言 ● 荣获BOSSIE评比的2014, 2015和2016年度最佳CRM软件 ● 定位于与Salesforce, Oracle, SAP and Microsoft Dynamics等商业CRM竞争 ● 能够通过工作流功能来对报价、Pipeline、合同等进行审批流程设置 ● 产品基于SugarCRM开源版,但远远超出 适用的操作系统 Windows: SuiteCRM runs on any OS that runs PHP Linux: SuiteCRM runs on any OS that runs PHP Mac: SuiteCRM runs on any OS that runs PHP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值