首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

跟我一起学Laravel-EloquentORM高级部分

creating事件,当保存用户之间检查用户数据的合法性,如果不合法,返回false,模型数据不会被持久化到数据。...返回false会阻止模型的save / update操作 序列化 当构建JSON API的时候,经常会需要转换模型和关系为数组或者json。...,使用makeVisible方法 return $user->makeVisible('attribute')->toArray(); 为json追加值 有时需要在json中追加一些数据库中不存在的字段...Mutators Eloquent模型中,Accessor和Mutator可以用来对模型的属性进行处理,比如我们希望存储到表中的密码字段要经过加密才行,我们可以使用Laravel的加密工具自动的对它进行加密...假设我们有一个字段是first_name,当我们尝试去获取first_name的值的时候,getFirstNameAttribute方法将会被自动的调用 <?

1.2K40

Laravel5.7 Eloquent ORM快速入门详解

此外,Eloquent 默认主键字段是自增的整型数据,这意味着主键将会被自动转化为 int 类型,如果你想要使用非自增或非数字类型主键,必须在对应模型中设置 incrementing 属性为 false...$flight = App\Flight::where('active', 1)- first(); 还可以通过传递主键数组来调用 find 方法,这将会返回匹配记录集合: $flights = App...delete 方法: $flight = App\Flight::find(1); $flight- delete(); 通过主键删除模型 在上面的例子中,我们调用 delete 方法之前从数据库中获取该模型...::where('active', 0)- delete(); 注:通过 Eloquent 进行批量删除,deleting 和 deleted 模型事件删除模型不会被触发,这是因为进行模型删除不会获取模型...('type', $type); } } 现在,你可以调用作用域传递参数了: $users = App\User::ofType('admin')- get(); 比较模型 有时候你可能需要确定两个模型是否是一样的

15K41
您找到你想要的搜索结果了吗?
是的
没有找到

Laravel学习记录--Model

Phone方法方法内部调用hasOne方法返回结果。...渴求式加载指定字段 有时候,使用渴求式加载不需要查询全部字段,这个时候可使用“指定字段” 格式with('模型方法:id,字段1字段2') 需要注意的是渴求式加载指定字段必须列出父表id 如下例子...实现多对多关联 stu模型定义一个方法方法内部调用belongsToMany()方法返回结果 belongsToMany('class','middleTable','foreignPivotKey...调用save方法向Phone模型插入值 这里Eloquent自动phones表中添加了uid字段,并插入正确的值 使用saveMany添加多个值 $user = \App\Muser::find...null,Eloquent允许我们为这种空对象定义一个默认的类型,这个对象类型定义关联指定,通过withDefault()方法(这个方法好像在前面提到过) withDefault()如果不指定值默认返回

13.4K20

Laravel5.2之Demo1——URL生成和存储

当执行数据表迁移命令php artisan migrate执行的是up()方法;当执行回滚上一次迁移命令php artisan migrate:rollback执行的是down()方法,该命令具有破坏性会删除...solid red} div#success{background:#80ff80;border:1px solid #0f0} balde模板页面写完,然后routes.php路由文件中写个路由...可以查看Model这个class源码里有table和fillable字段,这个Model类提供了许多好用的方法有时间可以瞅瞅。...(1)、验证输入 提交表单都要验证输入数据是否符合规定,免得让脏数据进入数据表里,laravel提供了Validation模块来做表单验证并且可以视图中显示验证错误信息,具体想了解下的可以看我这篇文章...withInput()函数会在返回表单input里填上刚刚输入的旧数据。

24K31

Laravel 5.0 之 Eloquent 属性转换

提示:以前版本中也可以这样做,但是必须为每个属性定义一个自动赋值的方法。而在新版本中可以通过单一的数组配置让模型自动完成这些工作。...float(real|double) Real, Float 和 Double PHP 中是同一种类型。 PHP 的 (double) 和 (real) 类型转换都是 (float) 的别名。...string 这个很简单,就是把你指定的属性值转为字符串返回,用的是 return (string) $value. boolean(bool) 这是把你指定的属性值转换为布尔值返回,用 return...(bool) $value 实现,这意味着你要把你的数据存储为 01. object 对象和数组是最有意思的选项。...array 这个值是把 JSON 化的数组转换为 PHP 数组,用 return json_decode($value, true) 实现。 如果你需要看一下源代码,请点击这里。

2.1K80

laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析

分享给大家供大家参考,具体如下: 1、连接数据库 laravel连接数据库的配置文件位于config/database.php中,在其中connection字段中包含laravel所支持的数据库的配置信息...2个数据的方式返回结果集),第二个参数为回调函数,当其返回false就停止结果集的返回: DB::table('student')- chunk(2,function ($res){ foreach...('age','desc'); //$order为true才执行此语句 })- get(); 3.4、排序、分组、限定 //orderBy对age字段升序 $res=DB::table('...Eloquent默认会管理数据表的创建时间、更新时间,对应数据表中的created_at、updated_at字段,你需要在创建表包含这两个字段。...使用create批量添加,需要在模板中通过fillable指定可以赋值的字段,也可以guard指定不允许赋值的字段

13.3K51

如何扩展Laravel Auth来满足项目需求

想了解实现细节的可以回看下面两篇文章 Laravel源码解析之用户认证系统(一) Laravel源码解析之用户认证系统(二) 介绍用户认证系统基础的时候提到过Laravel自带的注册和登录验证用户密码都是去验证采用...config/auth.php里配置让看守器使用新注册的 custom-eloquent作为用户提供器了: //config/auth.php 'providers' => [ 'users'...,现在密码认证已经修改过来了,现在用户认证使用的看守器还是 SessionGuard, 系统中会有对外提供API的模块,在这种情形下我们一般希望用户登录认证后会返回给客户端一个JSON WEB TOKEN..., 认证中会使用上面注册的 jwt看守器来完成认证,认证完成后会返回一个JSON WEB TOKEN给客户端 Route::post('apilogin', 'Auth\LoginController...的用户认证系统,目的是让大家对Laravel的用户认证系统有一个更好的理解知道Laravel系统默认自带的用户认证方式无法满足我们的需求如何通过自定义这两个组件来扩展功能完成我们项目自己的认证需求。

2.6K20

Laravel Eloquent 模型关联关系(下)

Eloquent 模型上进行关联查询主要分为两种方式,一种是懒惰式加载(动态属性),一种是渴求式加载(通过with方法)。...,如果返回的文章结果是列表的话,需要遍历获取作者信息,假设要循环 N 次的话,加上文章模型本身的获取,总共需要进行 N + 1 次查询,而 PHP 对数据库的连接是短连接,每次都要重新连接数据库,所以从性能角度考虑不建议使用这种方式...空对象模型 如果外键字段 user_id 允许为空的话,当我们访问 Post 模型上的 author 属性,默认返回为 null。...对于那些已存在的标签记录,我们可以通过更高效的方法与文章进行关联关系的绑定和解除,这个方法就是 sync,调用方法只需传入刚创建/更新后文章的标签对应 ID 值,至于哪些之前不存在的关联需要绑定,哪些存在的关联需要解除...有时候,你可能仅仅是想要更新中间表字段值,这个时候,可以通过 updateExistingPivot 方法第二个参数中将需要更新的字段值以关联数组的方式传递过去: $post->tags()->updateExistingPivot

19.5K30

推荐17-Laravel 中使用 JWT 认证的 Restful API

如果 loginAfterSignUp 属性为 true ,则注册后通过调用 login 方法为用户登录。否则,成功的响应则将伴随用户数据一起返回。...如果从 attempt 方法返回 false ,则返回一个失败响应。否则,将返回一个成功的响应。 logout 方法中,验证请求是否包含令牌验证。...通过调用 invalidate 方法使令牌无效,并返回一个成功的响应。如果捕获到 JWTException 异常,则返回一个失败的响应。... getAuthUser 方法中,验证请求是否包含令牌字段。然后调用 authenticate 方法,该方法返回经过身份验证的用户。最后,返回带有用户的响应。 身份验证部分现在已经完成。...最后,我们返回这个数组。Laravel 将自动将其转换为 JSON ,并创建一个为 200 成功的响应码。 继续实现 show 方法

10.9K20

3分钟短文:Laravel ORM 模型用法纲要

引言 前两期为了说明laravel框架提供的数据库操作能力,直接使用DB门面操作, 而没有引入更为强大的eloquent orm功能。...上述方法会对Contact模型调用toArray方法进行格式化,然后返回一个 JsonResponse 对象的响应体。...如果返回的模型想要手动定制一下,那么查询结果集中,使用Collection提供的格式化功能就好了。...所以使用map遍历集合元素, 每个元素其实都是一个独立的Contact对象,直接给对象追加属性就可以增加字段了。...,只需在生成指令上追加参数如下: php artisan make:model Contact --migration 有些时候,我们维护一些数据库和表,想要动态切换某个模型所对应的数据库表, 那么只需模型文件内手动指定表名即可

70140

需要掌握的 Laravel Eloquent 搜索技术

Laravel 中可以使用 where 方法实现对给定字段和给定值进行比较查询,就是这样简单。 <?...php $results = Post::where('title', 'foo')->get(); 甚至,你可以传入一个 array 到 where 方法里,对多个字段进行比较查询。...它的工作原理,类似 &&(与查询) 运算符,当所有条件都为 true 返回结果集: <?...Eloquent 提供了比 where 语句更加灵活的模糊查询功能。通过 where 方法中使用通配符,可以实现模糊查询功能。让我们看看 % 通配符: <?...Laravel 中也可以轻松执行对 JSON 数据的查询,这得益于 Laravel 良好的 JSON 支持。 不过深入研究之前需要注意的一点是:谨记 JSON 列的存储是 区分大小写 的。

3.5K10

Laravel系列4.3】模型Eloquent ORM的使用(一)

最后查询中,我们也看到了类似于 查询构造器 的链式调用形式,通过模型的静态 where() 方法返回的实例对象,一步步地构造整个查询。...最后整理下上面的调用链条,首先,我们生成定义的 MTest 是继承自 laravel/framework/src/Illuminate/Database/Eloquent/Model.php 这个抽象类的...然后就是调用 newBelongsTo() 方法生成一个 laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php...其实这段代码已经很清楚明了了,如果没有 key 就返回一个空的内容,如果 key 存在于当前这个模型类的相关属性中,则调用一些处理方法返回。...接下来,如果这个 key 是 Model 基类中的某个方法,直接返回一个空的内容。注意,这里又用到了我们之前学习过的一个技巧,大家能看出来吗?

8.8K20

通过 Laravel Eloquent 模型实现简单增删改查操作

实际上,Eloquent 模型类底层的查询也是基于查询构建器来实现的,你可以模型类上调用所有查询构建器的 Where 查询方法,同样是以流接口的模式构建方法调用即可。...此外,如果查询的条件是主键 ID 的话,还可以将上述调用简化为通过 find 方法来实现: $user = User::find(1); 返回结果与上面完全一致。...如果你想要在单条记录返回结果为空返回 404 响应(控制器方法中可能需要用到类似操作),可以通过 firstOrFail 或者 findOrFail 方法找不到对应记录抛出 404 异常,从而简化代码编写...注:除获取单条记录之外,ELoquent 模型类查询返回的结果都是集合类,因此你可以查询结果上调用集合类的所有方法,还可以自定义模型对应集合类,详情请查看对应官方文档。...执行上面的代码就会在数据库新增一条记录(我们 Tinker 中执行上述代码): ? 我们先要创建一个新的 Post 模型实例,然后依次设置需要设置的字段,最后调用 save 方法保存即可。

7.9K20

需要掌握的 Laravel Eloquent 搜索技术

Laravel 中可以使用 where 方法实现对给定字段和给定值进行比较查询,就是这样简单。 <?...php $results = Post::where('title', 'foo')->get(); 甚至,你可以传入一个 array 到 where 方法里,对多个字段进行比较查询。...它的工作原理,类似 &&(与查询) 运算符,当所有条件都为 true 返回结果集: <?...Eloquent 提供了比 where 语句更加灵活的模糊查询功能。通过 where 方法中使用通配符,可以实现模糊查询功能。让我们看看 % 通配符: <?...Laravel 中也可以轻松执行对 JSON 数据的查询,这得益于 Laravel 良好的 JSON 支持。 不过深入研究之前需要注意的一点是:谨记 JSON 列的存储是 区分大小写 的。

4.3K20

(转) Laravel Eloquent 提示和技巧

updating(function ($model) { // do some logging }); } } 可能最常见的例子之一是创建模型对象设置一些字段值...全局范围内默认排序 如果你希望所有用户总是按照 name 字段排序,你可以全局范围内做一个声明,让我们回到上面已经提到的boot()方法。...原始查询方法 有时候我们需要在Eloquent查询语句中添加原始查询 // whereRaw $orders = DB::table('orders') ->whereRaw...命令行创建模型的同时,创建迁移文件和控制器 laravel创建模型的命令大家都很熟悉: php artisan make:model Company 不过你应该了解另外几个很常用的参数: php artisan...因此,如果您需要检查受影响的行数,则无需再调用任何其他内容 - update()方法将为您返回此数字。 19.

1.5K30
领券