当我们使用Laravel框架时,发现Laravel 内置的 Eloquent ORM模型 是一个操作数据库的利器,模型允许你在表中进行数据查询,以及插入、更新、删除等操作。我们只需要创建一个 Eloquent 模型,就可以便捷地使用insert,delete,update,select等操作。随着数据业务的不断复杂,数据表经常要与其它表做关联,有时候查询一条信息就需要关联很多张表。Eloquent 使得组织和处理这些关联关系变得简单,并且支持多种不同类型的关联关系:
一 . 一对一
一对一关联是最简单的关联关系:一个人有一个身份证号。
return $this->hasOne('App\Phone', 'foreign_key', 'local_key');
foreign_key当前模型的主键,local_key:关联模型在当前模型里的键值
一对一二 . 一对多
一对多是用于定义单个模型拥有多个其它模型的关联关系:一个人有多个手机号。
return $this->hasMany('App\Comment', 'foreign_key', 'local_key');
foreign_key当前模型的主键,local_key:关联模型在当前模型里的键值
一对多三 . 多对多
多对多关联关系:一个用户有多个角色,同时一个角色被多个用户共用。例如,很多用户可能都有一个“Admin”角色。要定义这样的关联关系,需要三个数据表:users、roles和role_user,role_user表按照关联模型名的字母顺序命名,并且包含user_id和role_id两个列。
return $this->belongsToMany('App\Role', 'user_roles', 'user_id', 'role_id');
多对多未完待续...
网友评论