laravel 中的 Eloquent ORM 里,hasOne 和 belongsTo 有什么区别

作者&投稿:孛平 (若有异议请与网页底部的电邮联系)
laravel 中的 Eloquent ORM 里,hasOne 和 belongsTo 有什么区别~

没什么大区别,在处理代码的时候是没有区别的,唯一的区别就是逻辑上的合理性。
打个比方,一个人有一部手机,在人也就是用户model 中,你肯定要用hasOne 而不是belongsTo,因为你不能说人是属于手机(虽然也可以这样,但不符合常理,会让人觉得莫名其妙);在手机model中使用belongsTo,意味着手机是物件,人是主体,也就是手机是人类的附属品,且只能有一个。使用的方法名也要切合实际,这样读代码自己或别人才能看明白。


在使用时,其结果都是返回当前用户的手机或是手机的用户(你可以选择collection类型也可以选择array类型)。注意。在写方法名的时候,最好使用单数(例如phone或者user)而不是复数(因为手机和人相对的都是单个的,应该用单数,这样的命名才更符合逻辑与事实)。

希望对你有帮助!

引自互联网:
一、Laravel
RESTful 路由
通过简单的闭包就能响应HTTP请求。帮你快速开始构建非凡的应用。
强大的数据操纵能力
Laravel自带了强大的Eloquent ORM 和迁移工具。能够完美的与MySQL、Postgres、SQL Server 和SQLite协同工作。
优雅的模版引擎
PHP代码或轻量级的Blade模版引擎都可无缝融合。Blade模版可以继承,并且拥有极快的解析速度。相信你会喜欢它的。
为明天做准备
构建大型的级应用或者只是提供简单的JSON API;书写强大的控制器或轻巧的RESTful路由,Laravel适应所有级别的开发工作。

你好
其实没什么大区别的,在处理代码的时候是没有区别的,唯一的区别就是逻辑上的合理性。
打个比方,一个人有一部手机,在人也就是用户model 中,你肯定要用hasOne 而不是belongsTo,因为你不能说人是属于手机(虽然也可以这样,但不符合常理,会让人觉得莫名其妙);在手机model中使用belongsTo,意味着手机是物件,人是主体,也就是手机是人类的附属品,且只能有一个。使用的方法名也要切合实际,这样读代码自己或别人才能看明白。

在使用时,其结果都是返回当前用户的手机或是手机的用户(你可以选择collection类型也可以选择array类型)。注意。在写方法名的时候,最好使用单数(例如phone或者user)而不是复数(因为手机和人相对的都是单个的,应该用单数,这样的命名才更符合逻辑与事实)。

希望对你有帮助!


保靖县13964567696: 什么是Laravel Eloquent ORM -
边盛利肝: 就是laravel框架内提供的一个实体关系映射框架(ORM),名字叫eloquent 是一个用于关系型数据库实体关系映射的组件,laravel内置的,可以以操作对象的方式操作数据库的数据变更和查询

保靖县13964567696: laravel的eloquate当中,提交表单数据有两种方式,一个是静态,一个是动态, -
边盛利肝: 数据填充(也就是批量导入数据)不应该使用EloquentORM,而是用Laravel的Artisan命令行,使用起来也很简单.帮助文档里写的比较清楚了参考:/docs/4.2/migrations#database-seeding最下面的DatabaseSeeding

保靖县13964567696: laravel5 Eloquent 怎么实现事务 -
边盛利肝: 事务的使用在官方文档上有写的,基本例子如下:DB::transaction(function () { DB::table('users')->update(['votes' => 1]); DB::table('posts')->delete(); });详细说明:https://laravel.com/docs/5.4/database#database-transactions

保靖县13964567696: laravel 的 Eloquent ORM 查询前50条数据 怎么查 -
边盛利肝: 配置两个模型的多对多关系. 直接使用ORM的关系查询. 主意:多对多关系需要一张多对多关系表. 示例: User与Role模型. 多对多关系表名:user_roles 关系键分别为“user_id”与“role_id” class User extends Model { public function roles() { ...

保靖县13964567696: laravel 中的 Eloquent ORM 里,hasOne 和 belongsTo 有什么区别 -
边盛利肝: 没什么大区别,在处理代码的时候是没有区别的,唯一的区别就是逻辑上的合理性.打个比方,一个人有一部手机,在人也就是用户model 中,你肯定要用hasOne 而不是belongsTo,因为你不能说人是属于手机(虽然也可以这样,但不符合常...

保靖县13964567696: laravel判断两个字符串是否相等 -
边盛利肝: 可以使用库函数strcmp比较.strcmp是C语言比较字符串的库函数.形式为 int strcmp(char *a, char *b); 该函数会对a和b的每个字符,按照ascii码值比较,如果二者完全相同返回0;如果a的ascii码值先出现较大者,会返回1;否则返回-1.所以,要判断字符串相等,可以使用 if(strcmp(string1, string2) == 0) 如果返回为0,则相等,否则不等.

保靖县13964567696: 如何共享laravel的session跟cookie -
边盛利肝: 我这边总结一下,也许以后有人会需要,其实Laravel的session并不是用PHP自带的session管理器.而是完完全全自己实现了一个.注意是完完全全自己实现的,并不是传统意义上用session_set_save_handler自定义的session处理器.所以解...

保靖县13964567696: PHP框架 Laravel Eloquent ORM 批量插入数据,怎么实现 -
边盛利肝: 不是laravel的,,试试吧 ini_set('max_execution_time','0');$pdo = new PDO("mysql:host=localhost;dbname=test","root","123456");$sql = "insert into test(id,account_id,name,created_time,status) values";for($i=0; $i$str = strrand(32...

保靖县13964567696: laravel 迁移怎么设置int类型 -
边盛利肝: 属性类型转换是Laravel中Eloquent模型的一个最近添加的新属性,现在暂时没有获得太多关注.那么它是什么,有时怎么使用的呢?类型转换指的是隐式或者显式的将实体从一种数据类型转为另外一种数据类型.这是一个值为"100"的变量从字符串转换为整形的例子:$value = "100"; // $value是一个字符串$value = (int) "100"; // $value转换为一个整形 在Laravel 4中,你只能手动地添加访问方法和/或调整方法处理属性以实现变量类型转换 public function getAgeAttribute($value) { return (int) $value;

保靖县13964567696: laravel中集合和数组的区别是什么 -
边盛利肝: 区别是: 所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组的各个变量称为数组的分量,也称为数组...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网