Laravel Eloquent ORM的hasOne和belongsTo

2024-02-29 19:58

本文主要是介绍Laravel Eloquent ORM的hasOne和belongsTo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

hasOne()方法有3个参数

public function hasOne($related, $foreignKey = null, $localKey = null)

第一个参数为对应的model,第二个参数默认为model对应的表的外键,第三个参数默认为当前模型对应的表的主键。这个方法的sql语句为

select * from model对应的表 where model对应的表的foreignKey = 当前模型对应的表的localKey

belongsTo()方法有4个参数

public function belongsTo($related, $foreignKey = null, $otherKey = null, $relation = null)

第一个参数为model,先讲第四个参数,默认为调用belongsTo()的方法名字,第二个参数默认为第四个参数加上_id,第三个参数默认为
model的对应表的主键。相当于sql语句

select * from model对应表 where model对应表的otherKey = 当前模型的表的foreignKey

具体可以通过阅读源码更加详细。

这篇关于Laravel Eloquent ORM的hasOne和belongsTo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/759894

相关文章

laravel框架实现redis分布式集群原理

在app/config/database.php中配置如下: 'redis' => array('cluster' => true,'default' => array('host' => '172.21.107.247','port' => 6379,),'redis1' => array('host' => '172.21.107.248','port' => 6379,),) 其中cl

Laravel 面试题

PHP模块 PHP7 和 PHP5 的区别,具体多了哪些新特性? 性能提升了两倍 结合比较运算符 (<=>) 标量类型声明 返回类型声明 try…catch 增加多条件判断,更多 Error 错误可以进行异常处理 匿名类,现在支持通过new class 来实例化一个匿名类,这可以用来替代一些“用后即焚”的完整类定义 …… 了解更多查看文章底部链接 PHP7 新特性 为什么 PHP

Go 在orm中使用反射

作为静态语言,golang 稍显笨拙,还好 go 的标准包reflect(反射)包弥补了这点不足,它提供了一系列强大的 API,能够根据执行过程中对象的类型来改变程序控制流。本文将通过设计并实现一个简易的 mysql orm 来学习它,要求读者了解mysql基本知识,并且跟我一样至少已经接触 golang 两到三个月。 orm 这个概念相信同学们都非常熟悉,尤其是写过rails的同学,对acti

第二十二章 rust数据库使用:sea-orm详解

注意 本系列文章已升级、转移至我的自建站点中,本章原文为:rust数据库使用:sea-orm详解 目录 注意一、前言二、项目管理三、迁移文件四、实体文件五、业务使用 一、前言 只要开发稍微大型一点的项目,数据库都是离不开的。 rust目前并没有特别成熟的数据库框架,sea-orm这个框架是我目前所看到的成熟度最高的一个,并且仍在积极开发中。 所以本文将以sea-orm框

Laravel安全应用模块示例教程

前言 Laravel 是一个流行的 PHP 框架,它提供了一套丰富的功能来帮助开发者构建安全、可维护的应用程序。下面,我将详细解释 Laravel 中关于认证、CSRF 保护、授权、哈希、加密、密码重置等安全模块的实现逻辑、应用场景以及相应的示例代码。 详情见官方中文文档 一. 认证(Authentication) Laravel的认证系统是一个强大且灵活的用户身份验证解决方案,它基于PHP

设计之道:ORM、DAO、Service与三层架构的规范探索

引言: 实际开发中,遵守一定的开发规范,不仅可以提高开发效率,还可以提高项目的后续维护性以及项目的扩展性;了解一下本博客的项目设计规范,对项目开发很有意义 一、ORM思想 ORM(Object-Relational-Mapping)在对象模型和关系型模型之间做一个映射(转换)。 目的是为了解决面向对象编程语言的发展和关系型数据库的发展不匹配的问题 可以理解为: 将Java中的数据结

easyswoole orm 查询字段中出现关键字报错

使用easyswoole orm 报如图错误: 我使用的是一个很简单的orm 语法: public function getItemById(int $id):?array {return $this->create()->get($id)->toArray();}  报错的位置就在 这一句,之前也用过 也没报错,开始没弄懂为什么会出现报错,然后仔细的阅读了一下错误提示: 貌似是说

如何在 ThinkPHP 中整合 Laravel Eloquent ORM

前言 之前维护的旧项目采用的 ThinkPHP 3.2,后面学习了 Laravel 后,觉得 TP 的 Model 功能没有 Laravel 强大和方便,并想把 Laravel 里的 Eloquent 用在 TP 里。 好在 Laravel 的 ORM 是独立成包的,可以用于符合要求的其他 PHP 系统中。 整合 要使用的是 illuminate/database 。 安装illumin

Spring对ORM的支持之集成Hibernate3

Hibernate是全自动的ORM框架,能自动为对象生成相应SQL并透明的持久化对象到数据库。 Spring2.5+ 版本支持Hibernate 3.1+ 版本,不支持低版本,Spring 3.0.5 版本提供对Hibernate 3.6.0 Final 版本支持。 8.2.1  如何集成 Spring通过使用如下Bean进行集成Hibernate: LocalSessionFac

org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: 29 near line 1, column

@SuppressWarnings("unchecked")   public List<Strudent> getStudent(int count) {       String hql = "select top "+count+" from Student";       return (List<Student>)getHibernateTemplate().fin