首页
学习
活动
专区
圈层
工具
发布

Laravel Eloquent 模型关联关系详解(上)

(UserProfile::class); } 我们通过数据库填充技术在 user_profiles 插入一些数据,这样就可以在 User 模型实例上通过关联方法名作为动态属性访问与其对应的 UserProfile...你可能注意到了我们在定义关联关系时,仅仅指定了模型类名,并没有指定通过哪些数据表字段建立关联,这并不是说 Laravel 神通广大,能知过去未来之事,而是因为 Eloquent 对此做了默认的约定。...为什么我们不需要指定 Laravel 就能完成这种关联呢,这是因为如果没有指定 $foreignKey,Eloquent 底层会通过如下方法去拼接: public function getForeignKey...->hasMany(Post::class); } 由于我们之间已经创建过 users 表和 posts 表,并且初始化过数据,所以我们可以直接通过动态属性的方式来调用用户模型上的文章: $user...relations 字段中有一个 pivot 属性,中间表字段就存放在这个属性对象上: 我们在遍历返回结果的时候可以在循环中通过 $post->pivot->tag_id 获取中间表字段值。

10.8K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    国内使用reCaptcha验证码的完整教程

    reCaptcha是Google公司的验证码服务,方便快捷,改变了传统验证码需要输入n位失真字符的特点。...reCaptcha验证框的地方添加div容器: recaptcha" data-sitekey="【此处添加你的site-key】"> 这样就完成了客户端的部署。...服务端部署代码: 服务端只需要将客户端点击验证码后传回的g-recaptcha-response值和ip以及secret传给Google的API: https://recaptcha.net/recaptcha...当然有的人不喜欢把一堆属性加在dom上,更希望通过js API来使用,没关系,我们来看看显示加载是怎么玩的。...聪明的同学已经发现了,grecaptcha.render()就是验证码组件初始化方法,它接受两个参数,前者为组件容器id,也就是我们在div上添加的robot;第二个参数是一个对象,也就是组件相关配置。

    38.6K33

    Laravel5.3之PHP反射(Reflection) (上)

    说明:Laravel中经常使用PHP的反射特性来设计代码,本文主要学习PHP的反射特性,来提高写代码时的设计质量。...开发环境: Laravel5.3 + PHP7 Introspection Functions Introspection Functions是用来操作object class的一些函数,PHP提供了大量的...(private,protected,public)是否存在于指定的类对象或类名中,Laravel中很多处用到了这个函数,如Application中的register()检查service provider...中只有一处使用了class_alias(),用来给config/app.php中$aliases[ ]注册别名,可看下Laravel5.3之bootstrap源码解析,看下Laravel中如何使用的:...,这个函数在Laravel中大量地方在用了,如Application::getProvider($provider)方法,是个很好用的方法: public function getProvider

    2.3K41

    验证码的未来:扒一扒reCAPTCHA的那些事

    reCAPTCHA的诞生及意义 CMU(卡耐基梅隆大学)设计了一个名叫reCAPTCHA的强大系统,让电脑去向人类求助。...(图1) 为了改善软件的精确性, reCAPTCHA 会将最困难的词发送给多个用户并挑选其中有相同答案的作为正确的答案。据说准确率能够达到99%。...用户每使用一次这个程序,实际上就是在帮助数字重现1908年《纽约时报》上的某一页,或者其它古书中的一页,这对考古学具有重大的意义。...下面是一个在使用reCAPTCHA进行注册验证的网站实例(图2): ? ? (图2) reCAPTCHA被Google收购 reCAPTCHA在 2009 年被 Google 收购。...新的reCAPTCHA被Google称作没有验证码的验证码("No CAPTCHA reCAPTCHA"),他让用户只需要简单的勾选就可以确认你是真实用户而非恶意机器人,操作非常简单。

    4K50

    【Laravel系列8】走出 Laravel 的世界

    走出 Laravel 的世界 还记得这个系列的第一篇文章是什么吗?当时我们写的是《进入Laravel的世界》。照理说,学习完了,日常应用更得心应手了,我们为啥又要走出呢?...又是一个新的开始 对于我们的人生来说,就是在不断地进行着开始与结束的循环。在开始的时候,我们走进 Laravel 的世界。...学习这条路是没有尽头的,Laravel 的学习结束了,不少小伙伴应该也把它应用在日常业务开发中了。下一个起点又会是什么呢?...如果你还要继续深入地学习一些编程思想,现在应该去看一看 Java 相关的框架了。体系更复杂,概念更多,但是也确实都是更流行更新潮的内容。是否合适用在 PHP 上呢?...你可以在这些框架中寻找到 Laravel 中许多实现的影子。如果你本身就是在用 Laravel ,去拓展一下眼界也没什么不好。不说谁抄谁,思想都是开源的,这点你必须承认。

    1.6K30

    【Laravel系列1】进入 Laravel 的世界

    进入 Laravel 的世界 欢迎来到 Laravel 系列文章的学习。从这篇文章开始,我们开始进入到 PHP 框架相关的学习中。...在这其中,我们主要学习的就是 Laravel 框架,那么为什么是 Laravel 呢?明明 TP 、 Yii 也是很多人在使用的呀。...为什么是 Laravel 一说到 PHP 的框架,三巨头是绕不开的,也就是 ThinkPHP 、Yii 以及我们马上要学习的主角 Laravel 。...目前在工作使用的,正是 Laravel 和 Hyperf 。 注:Hyperf 中很多东西也有 Laravel 的影子,甚至很多内容是可以无缝迁移的。 Laravel 优雅吗?...而 Laravel ,正是为了解决这个问题,将你的代码规范起来。或者说,在底层上,代码是很规范的,至于上层代码怎么样,就看你能不能有自己的规范了。当然,我们也不能忽略 PSR 系列规范的作用。

    1.6K20

    【Laravel系列6.2】Laravel中的服务容器

    Laravel中的服务容器 我们已经了解了服务容器是个什么东西,也知道了依赖、依赖注入、控制反转以及最终的服务容器的概念和它们要解决的问题。...使用 Laravel 中的服务容器 在 Laravel 中使用服务容器非常简单,我们首先还是定义那几个测试的类,不过这次我们把它们分开到不同的文件中存储。...官方的解释是 服务提供者是所有 Laravel 应用程序的引导中心。你的应用程序,以及通过服务器引导的 Laravel 核心服务都是通过服务提供者引导。...然后我们通过最简单的方式直接 make() 一个 ZyBlog 对象,此时,需要的 phone 对象就被注入进去了,是不是感觉有点高大上。...作为普通的服务容器来说,它们的使用非常简单方便,但其实在一个商业化的开源框架中,它们的功能绝不仅限如此,比如说服务容器的接口绑定实现、标记、扩展绑定这些,还有服务提供者的延迟提供者我们都没有讲到,但这些内容在官方文档上已经写得很详细了

    2.2K20

    PayPal验证码质询功能(reCAPTCHA Challenge)存在的用户密码泄露漏洞

    近期,安全研究者Alex Birsanl对PayPal登录界面的身份验证机制进行分析,发现了其中一个隐藏的高危漏洞,可以通过请求其验证码质询服务端(reCAPTCHA challenge),在质询响应消息中获取...因为:如果经过数次的登录失败尝试,之后,在继续登录之前,PayPal会向用户发起一个验证码质询(reCAPTCHA challenge),以验证当前尝试登录的主体是否是人还是暴力枚举的Robot。...提供过来的验证码质询(reCAPTCHA challenge)token,它与特定的用户会话无关,无论人机验证,只要与其匹配的任何有效输入token,它都会接受。...在我设计的PoC中,这些敏感信息会显示在页面中。整个PoC的最后步骤是去请求Google获取一个最新的reCAPTCHA token。...漏洞上报及处理进程 2019.11.18 我将PoC验证资料连同其它敏感信息一并提交给了PayPal在HackerOne上的众测项目; 2019.12 PayPal确认了漏洞的有效性; 2019.12.10

    2.5K20

    Dingo Api 的限流在Laravel的限流基础上做了哪些修改?

    今天看文档的时候看到 Laravel的 节流限速 (throttling) 。网络上搜索,又看到了Dingo 的节流限速的文档。...因此查看Laravel 与Dingo的源码,对比两者之间的相同点与不同点。...Dingo支持修改限制key,Laravel默认没有支持修改方法 Dingo支持添加多个限制规则,逻辑上使用限制数最小的进行判断。 假设有两个限制器,且都符合限制条件。...Illuminate\Routing\Middleware\ThrottleRequests获取设置的返回头信息代码如下: ? 总结 两者实现原理相同,只是在细节上Dingo的功能更加强大。...Dingo 限制粒度更细,限制规则上,可扩展性,灵活性都比Laravel强。 两者都是通过中间件处理请求限流。

    1.7K10
    领券