主要观点:SuiteCRM 的 MVC 架构中,Beans 是模型,可从数据库获取数据、保存和编辑记录,介绍了多种与 Beans 工作的方式。
关键信息:
- BeanFactory:可动态加载或创建 Bean 实例,如
BeanFactory::newBean('<TheModule>')
创建新 Bean,BeanFactory::getBean('<TheModule>', $beanId)
获取现有 Bean,getBean
会缓存 10 个结果。 - SugarBean:是 SuiteCRM 解决方案中所有 Bean 的父类。
搜索 Beans 的方法:
get_list
:可获取匹配 Bean 的列表并分页,需指定排序$order_by
、过滤条件$where
、起始行$row_offset
、限制数量$limit
等参数,返回包含分页信息和 Bean 列表的数组。get_full_list
:获取所有匹配 Bean 的列表,参数与get_list
类似,区别是$check_dates
参数。retrieve_by_string_fields
:根据匹配字符串字段检索单个记录,需指定字段数组$fields_array
等参数,返回单个 Bean 或 null。
- 访问字段:通过访问 Bean 的属性获取或设置字段值,更改后需调用
save
方法保存到数据库,save
根据id
字段决定是更新还是插入新记录。 相关 Beans:
get_linked_beans
:获取给定记录的相关 Bean 列表,需指定字段名$field_name
、Bean 名称$bean_name
等参数,返回相关 Bean 数组。- 关系相关操作:使用
load_relationship
加载关系,可通过get
获取相关记录 ID,getBeans
获取相关 Bean 数组(可能性能较差),add
添加相关记录,delete
解除相关记录。
重要细节:
get_list
中$order_by
可指定多个字段排序,如date_modified, id DESC
。retrieve_by_string_fields
中$deleted
参数控制是否过滤删除的记录,true
表示不包含删除记录。get_linked_beans
中$field_name
不是关系名称,可在cache/modules/<TheModule>/<TheModule>Vardefs.php
中查看链接定义。add
方法中如果 Bean 可用应使用它以避免重新加载 Bean。delete
方法中需传递当前 Bean 的id
和相关 Bean 的id
或 Bean。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。