`
hegz
  • 浏览: 439469 次
  • 性别: Icon_minigender_1
  • 来自: 茂名
社区版块
存档分类
最新评论

FleaPHP数据关联

 
阅读更多

$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核心完整代码

    Fleaphp提供了简便的数据操作方法,如查询、插入、更新等,支持多种数据库类型。 4. **视图(View)**:视图负责展示用户界面,通常包含HTML、CSS和JavaScript代码。Fleaphp的视图系统支持模板引擎,允许开发者使用...

    php框架fleaphp

    作为一款优秀的框架,Fleaphp旨在提供高效、简洁且易于上手的开发工具,帮助开发者快速构建Web应用。下面将详细介绍Fleaphp的主要特点、核心组件以及如何使用它进行开发。 1. **主要特点** - **轻量级**:Fleaphp...

    fleaphp1.7.1524

    4. **数据库支持**:Fleaphp通常支持多种数据库,如MySQL、SQLite等,通过简单的API进行数据操作,如CRUD(创建、读取、更新、删除)操作,以及更复杂的查询构建。 5. **模板引擎**:框架内可能包含一个模板引擎,...

    fleaphp中文手册详细版

    Fleaphp基于MVC(Model-View-Controller)设计模式,这是一个广泛用于Web开发的架构模式,它将业务逻辑、数据处理和用户界面分离,使得代码更易于维护和扩展。Fleaphp的轻量级特性使其在小型项目中表现出色,同时,...

    fleaphp框架

    2. **MVC模式**:Model-View-Controller(模型-视图-控制器)是FleaPHP的基础设计模式,它将业务逻辑、数据处理和用户界面分离,提高了代码的可读性和可维护性。 3. **路由系统**:FleaPHP拥有灵活的路由规则,可以...

    fleaphp框架附实例(最新版)

    1. **框架结构**:Fleaphp遵循MVC(Model-View-Controller)设计模式,将业务逻辑、数据模型和用户界面分离开来,使得代码组织有序,便于理解和维护。了解框架的基本目录结构和各部分的作用至关重要,例如`app`目录...

    fleaphp 框架实例以及详细使用方法说明

    视图文件通常位于`views`目录下,与控制器关联,用于渲染数据并返回给用户。 5. **控制器(Controller)** 控制器作为模型和视图的桥梁,处理用户的请求,调用模型执行业务逻辑,然后将结果传递给视图。例如,`...

    fleaphp手册

    fleaphp.chm手册

    FleaPHP+开发指南

    fleaphp框架,国产最好php开发框架

    fleaphp中文手册

    2. **MVC模式**:遵循Model-View-Controller(MVC)设计模式,FleaPHP将业务逻辑、数据处理和用户界面分离,使得代码结构清晰,易于维护和扩展。 3. **路由系统**:FleaPHP拥有强大的路由机制,支持基于URL的动态...

    FleaPHP的单入口文件详解

    **FleaPHP的单入口文件详解** 在PHP开发框架中,单入口模式是一种常见的设计模式,它主要用于管理和控制应用程序的流程。FleaPHP作为一个轻量级的PHP框架,也采用了这种模式,以此来保证程序的高效性和易于维护。...

    Fleaphp 常用方法.doc

    在FleaPHP开源应用程序开发...开发者可以利用这些方法轻松地处理用户界面、异步交互、数据库操作和数据缓存,从而实现更复杂的功能。在实际项目中,结合FleaPHP的其他组件和模块,可以构建出强大且易于维护的应用程序。

    FleaPHP 框架学习教程.zip

    在FleaPHP中,模型负责处理数据,视图负责渲染和展示,控制器则协调两者之间的交互。 在FleaPHP中,路由是连接URL请求和处理函数的关键部分。通过定义路由规则,您可以控制不同的URL请求如何被解析并调用相应的控制...

    FleaPHP chm文档

    FleaPHP chm文档,简单实例,框架流程介绍

    FleaPHP 开发指南

    - 使用模型中的关联方法建立数据表之间的联系。 #### 八、使用RBAC组件实现访问控制 - **RBAC (Role-Based Access Control)**: 基于角色的访问控制机制。 - **实现**: - FleaPHP提供了内置的RBAC组件,开发者可以...

    php.mysql.FLEAPHP.Smarty.正则手册汇总

    【正则表达式】:正则表达式是用于处理字符串的强大工具,可用于数据验证、搜索替换等。在PHP、JavaScript等语言中都有应用。虽然没有直接的正则表达式手册,但PHP和JavaScript的手册中都会有相关章节介绍正则表达式...

    Fleaphp框架使用规范收集.pdf

    - 数据访问层(Data Gateway):在MVC架构中,数据访问层封装了与数据库交互的所有细节,Fleaphp框架使用TableDataGateway类来实现这一点,支持CRUD(创建、读取、更新、删除)操作。 - 视图渲染:框架支持Smarty...

    fleaphp ajaxLogin.

    【fleaphp AJAX Login 实例详解】 在Web开发中,用户登录是常见的功能,而AJAX(Asynchronous JavaScript and XML)技术的应用使得用户交互更加流畅,无需刷新页面即可完成登录操作。本实例将深入探讨如何使用...

Global site tag (gtag.js) - Google Analytics