$belongsTo
定义从属关联
1、外键放置在主表中;
2、保存时不会自动更新关联表的记录;
3、删除时也不会更新关联表的记录。
示例:
多个文章都属于某一个栏目。
格式一:
class Articles
{
var $belongsTo = array(
array(
'tableClass' => 'Columns',
'foreignKey' => 'column_id',
'mappingName' => 'column'
),
);
}
在上面的格式中,foreignKey 表示在当前表中用什么字段存储对关联表的主键引用。
mappingName 表示在主表的返回结果中,以什么名字保存关联表的数据。
如果不提供 mappingName 参数,则假定使用 tableClass。
格式二:
class Articles
{
var $belongsTo = 'Columns';
}
格式二是一种简化写法。foreignKey 字段名将和关联表的主键字段名相同。
============================
$hasMany
定义一对多关联
1、外键保存在关联表中;
2、保存时自动更新关联表的记录;
3、删除主表记录时自动删除关联记录。
示例:
每个用户(user)有多张订单 order。
格式一:
class Users
{
var $hasMany = array(
array(
'tableClass' => 'Orders',
'foreignKey' => 'user_id',
'mappingName' => 'orders',
),
);
}
在一对多关系中,当前表并不包含对关联表的主键引用。
而是在关联表中保存对当前表的主键引用。
在上面的格式中,foreignKey 指示在关联表中用什么字段存储对当前表的主键引用。
mappingName 表示在主表的返回结果中,以什么名字保存关联表的数据。
如果不提供 mappingName 参数,则假定使用 tableClass。
格式二:
class Users
{
var $hasMany = 'Orders';
}
简化写法中,foreignKey 字段名将和当前表的主键字段名相同。
============================
$hasOne
定义一对一关联
1、外键放置在关联表中;
2、保存时如果有关联对象,则自动创建或更新关联表的记录;
3、删除主表记录时自动删除关联记录。
示例:
当前表为 users,用于存储用户账户。而每个用户账户有且只有一个对应的个人信息(profile)记录。
格式一:
class Users
{
var $hasOne = array(
array(
'tableClass' => 'Profiles',
'foreignKey' => 'profile_id',
'mappingName' => 'profile',
),
);
}
在上面的格式中,foreignKey 表示在关联表中用什么字段存储对主表的主键引用。 mappingName 表示在主表的返回结果中,以什么名字保存关联表的数据。 如果不提供 mappingName 参数,则假定使用 tableClass。
格式二:
class Users
{
var $hasOne = 'Profiles';
}
格式二是一种简化写法。foreignKey 字段名将和主表的主键字段名名相同。
============================
$manyToMany
定义多对多关联
1、外键保存在中间表里面;
2、保存时自动更新中间表;
3、删除主表记录时自动删除中间表的相关记录。
示例:
每个成员(member)可以拥有多个角色(role),而每个角色也可以指定给多个成员。
格式一:
class Members
{
var $manyToMany = array(
array(
'tableClass' => 'Roles',
'joinTable' => 'member_roles',
'foreignKey' => 'member_id',
'assocforeignKey' => 'role_id',
'mappingName' => 'roles',
),
);
}
在多对多关系中,当前表并不包含对关联表的主键引用。
而是在一个中间表里面保存对当前表和关联表的主键引用。
在上面的格式中,joinTable 表示中间表的名字。foreignKey 和
assocforeignKey 分别表示在中间表里面用什么字段存储对主表和
关联表主键字段的引用。
mappingName 表示在主表的返回结果中,以什么名字保存关联表的数据。
如果不提供 mappingName 参数,则假定使用 tableClass。
格式二:
class Members
{
var $manyToMany = 'Roles';
}
简化写法中,foreignKey 字段名将和当前表的主键字段名相同。
assocforeignKey字段名称则和关联数据表的主键字段名相同。
而中间表名称将用FLEA_Db_TableDataGateway::getMidtableName() 方法计算。
分享到:
相关推荐
Fleaphp提供了简便的数据操作方法,如查询、插入、更新等,支持多种数据库类型。 4. **视图(View)**:视图负责展示用户界面,通常包含HTML、CSS和JavaScript代码。Fleaphp的视图系统支持模板引擎,允许开发者使用...
作为一款优秀的框架,Fleaphp旨在提供高效、简洁且易于上手的开发工具,帮助开发者快速构建Web应用。下面将详细介绍Fleaphp的主要特点、核心组件以及如何使用它进行开发。 1. **主要特点** - **轻量级**:Fleaphp...
4. **数据库支持**:Fleaphp通常支持多种数据库,如MySQL、SQLite等,通过简单的API进行数据操作,如CRUD(创建、读取、更新、删除)操作,以及更复杂的查询构建。 5. **模板引擎**:框架内可能包含一个模板引擎,...
Fleaphp基于MVC(Model-View-Controller)设计模式,这是一个广泛用于Web开发的架构模式,它将业务逻辑、数据处理和用户界面分离,使得代码更易于维护和扩展。Fleaphp的轻量级特性使其在小型项目中表现出色,同时,...
2. **MVC模式**:Model-View-Controller(模型-视图-控制器)是FleaPHP的基础设计模式,它将业务逻辑、数据处理和用户界面分离,提高了代码的可读性和可维护性。 3. **路由系统**:FleaPHP拥有灵活的路由规则,可以...
1. **框架结构**:Fleaphp遵循MVC(Model-View-Controller)设计模式,将业务逻辑、数据模型和用户界面分离开来,使得代码组织有序,便于理解和维护。了解框架的基本目录结构和各部分的作用至关重要,例如`app`目录...
视图文件通常位于`views`目录下,与控制器关联,用于渲染数据并返回给用户。 5. **控制器(Controller)** 控制器作为模型和视图的桥梁,处理用户的请求,调用模型执行业务逻辑,然后将结果传递给视图。例如,`...
fleaphp.chm手册
fleaphp框架,国产最好php开发框架
2. **MVC模式**:遵循Model-View-Controller(MVC)设计模式,FleaPHP将业务逻辑、数据处理和用户界面分离,使得代码结构清晰,易于维护和扩展。 3. **路由系统**:FleaPHP拥有强大的路由机制,支持基于URL的动态...
**FleaPHP的单入口文件详解** 在PHP开发框架中,单入口模式是一种常见的设计模式,它主要用于管理和控制应用程序的流程。FleaPHP作为一个轻量级的PHP框架,也采用了这种模式,以此来保证程序的高效性和易于维护。...
在FleaPHP开源应用程序开发...开发者可以利用这些方法轻松地处理用户界面、异步交互、数据库操作和数据缓存,从而实现更复杂的功能。在实际项目中,结合FleaPHP的其他组件和模块,可以构建出强大且易于维护的应用程序。
在FleaPHP中,模型负责处理数据,视图负责渲染和展示,控制器则协调两者之间的交互。 在FleaPHP中,路由是连接URL请求和处理函数的关键部分。通过定义路由规则,您可以控制不同的URL请求如何被解析并调用相应的控制...
FleaPHP chm文档,简单实例,框架流程介绍
- 使用模型中的关联方法建立数据表之间的联系。 #### 八、使用RBAC组件实现访问控制 - **RBAC (Role-Based Access Control)**: 基于角色的访问控制机制。 - **实现**: - FleaPHP提供了内置的RBAC组件,开发者可以...
【正则表达式】:正则表达式是用于处理字符串的强大工具,可用于数据验证、搜索替换等。在PHP、JavaScript等语言中都有应用。虽然没有直接的正则表达式手册,但PHP和JavaScript的手册中都会有相关章节介绍正则表达式...
### FleaPHP框架学习教程知识点概述 #### 一、FleaPHP框架简介 - **特点**:FleaPHP是一款轻量级的PHP框架,旨在帮助开发者快速、轻松地创建应用程序。该框架简单易懂,拥有丰富的示例和中文文档,支持PHP4和PHP5...
- 数据访问层(Data Gateway):在MVC架构中,数据访问层封装了与数据库交互的所有细节,Fleaphp框架使用TableDataGateway类来实现这一点,支持CRUD(创建、读取、更新、删除)操作。 - 视图渲染:框架支持Smarty...
【fleaphp AJAX Login 实例详解】 在Web开发中,用户登录是常见的功能,而AJAX(Asynchronous JavaScript and XML)技术的应用使得用户交互更加流畅,无需刷新页面即可完成登录操作。本实例将深入探讨如何使用...