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

Laravel5.7 Eloquent ORM快速入门详解

时间 默认情况下,Eloquent 期望 created_at 和 updated_at 已经存在于数据表中,如果你不想要这些 Laravel 自动管理数据列,在模型类中设置 $timestamps...* * @var bool */ public $timestamps = false; } 如果你需要自定义时间格式,设置模型中 $dateFormat 属性。...该属性决定日期被如何存储到数据库中,以及模型被序列化为数组或 JSON 时日期格式: <?...created_at 和 updated_at 时间在 save 方法被调用时会自动被设置,所以没必要手动设置它们。 更新 save 方法还可以用于更新数据库中已存在模型。...当然,这两个属性你只能同时使用其中一个而不能一起使用,因为它们是互斥。下面的例子中,除了 price 之外所有属性都是可以赋值: <?

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

3分钟短文:Laravel 从软删除说到模型作用域概念

代码时间 常规删除操作分两步进行,一步是把数据从数据库中查询出来,使用laravel模型方法, 则返回是一个模型对象。第二步,调用模型对象delete方法。...所以引入了软删除概念,就是在表内添加一个字段,用于标记,这一行条目是否算是删除状态。在laravel中, 这个软删除字段默认是 deleted_at。你也可以在模型中手动指定。...然后在模型中,引入软删除功能,将其进行全局生效使用。...大家注意, 想我们常规操作一样,就是获取一个时间$time, 然后把字段赋值: $this->deleted_at = $time; 最后使用update方法更新模型,并修改数据库条目。...写在最后 本文从laravel模型写操作删除动作,讲到了软删除概念。进而引申出来本地作用域和全局作用域使用。软删除几乎贯穿了我们应用始终,需要大家勤学苦练。

1.3K30

【译】20个 Laravel Eloquent 小技巧(下)

继续介绍 Laravel Eloquent 小技巧 11....自定义属性排序 假设你有下面的一段代码: (设定了一个在返回对象时候附加属性 ‘full_name’参见 tips5 模型属性: 时间, 附加属性(appends) 等) function getFullNameAttribute...$builder) { $builder->orderBy('name', 'asc'); }); } 这里还有更多关于请求范围作用域介绍。...在保存时候重写 update_at 字段 你知道 - > save()方法是可以接受参数吗? 因此,我们可以告诉它“忽略” updated_at默认填充当前时间功能。...Laravel 默认会给所有实体类配置时间,如果不需要一般是在模型中指定 $timestamps = false 18. update()方法返回值是什么?

2.8K10

laravel框架模型和数据库基础操作实例详解

分享给大家供大家参考,具体如下: laravel分为三大数据库操作(DB facade[原始查找],查询构造器[Query Builder],Eloquent ORM): use Illuminate\...,[5]); 2.查询构造器[Query Builder] laravel查询构造器提供了方便流畅接口,用来建立及执行数据库查找语法。...新增数据、自定义时间、批量赋值 (1)使用save方法新增 laravel会默认维护created_at,updated_at 两个字段,这两个字段都是存储时间,整型11位,因此使用时需要在数据库添加这两个字段...student- vip_type='出行'; $student- vip_fenshu=900; $bool=$student- save(); //保存 echo $bool; 从数据库里取得某条记录时间时...,默认取得是按日期格式化好时间,如果想取得原本时间,则在模型里增加asDateTime方法。

2.8K20

CVE-2021-39165: 从一个Laravel SQL注入漏洞开始Bug Bounty之旅

Laravel不支持堆叠注入,那么要利用这个漏洞,就有两种方式: 通过UNION SELECT注入直接获取数据 通过BOOL盲注获取数据 UNION肯定是最理想,但是这里无法使用,原因是用户这个输入会经过两次字段数量不同...那么旧版本如何来利用呢?...rcrowe/twigbridge用于在Laravel和Twig之间建立一个桥梁,让Laravel框架可以直接使用twig模板引擎。...解决这个问题方法还是回归到代码审计中,Cachet获取用户输入是使用graham-campbell/binput,我在前面审计时候发现其在获取输入基础上会做一次过滤: public function...以下是漏洞生命时间线: Jul 19, 2021 - 漏洞发现 Jul 20, 2021 - SQL注入提交给Laravel官方,Laravel并不认为是自己问题 Jul 19 ~ jul 30,

69420

orm 系列 之 Eloquent演化历程2

数据库管理相关代码都放在Schema目录下, 最开始结构如下: src/Illuminate/Database/Schema ├── Blueprint.php └── Builder.php 就两个文件...:是前一篇讲对于Active Record模式中Model功能,包括了Model、Builder和Relation功能,忘记可以去看前一篇orm 系列 之 Eloquent演化历程1内容 Query...本文最后讲下Eloquent中新增对象之间关系:多态关系,以下内容摘自[ Laravel 5.3 文档 ] Eloquent ORM —— 关联关系 表结构 多态关联允许一个模型在单个关联下属于多个不同模型...首先是morphMany构造函数: public function __construct(Builder $query, Model $parent, $morphName) { $this...Building Schema Making a Model 在这两个之间,我们需要有一个第一步就是准备环境,我们来看下代码: use Illuminate\Database\Capsule\Manager

2.4K30

Laravel源码分析之模型关联

使用模型关联给应用开发带来收益我认为有以下几点 主体数据和关联数据之间关系在代码表现上更明显易懂让人一眼就能明白数据间关系。...按照Laravel设定好模式来写关联模型每个人都能写出高效和优雅代码 (这点我认为适用于所有的Laravel特性)。...HasMany实例时主要是做了一些配置相关操作,设置了子模型、父模型、两个模型关联字段、和关联约束。...、两个模型关联字段和约束,此外还设置了关联名称,在Model belongsTo方法里如果未提供后面的参数会通过debug_backtrace 获取调用者方法名作为关联名称进而猜测出子模型外键名称...动态属性加载关联模型 上面我们定义了三种使用频次比较高模型关联,下面我们再来看一下在使用它们时关联模型时如何加载出来

9.5K10

Laravel学习记录--Model

使用渴求式加载,即根据预先需求查询出所有数据 为了验证[渴求式加载]好处,举下列例子 这里用到了Laravel Debugbar 调试 安装方法可参照我另一个博客 - - - Laravel...,使用“.”连接即可,如我们需要获取所有书作者以及作者个人联系方式。...//withPivot方法向Eloquent说明中间表还有flag字段 } 正常显示flag字段 如果您想让中间表自动维护 created_at 和 updated_at 时间...dump($res); } 对应sql update `stu__classes` set `flag` = '更新' where `sid` = 1 and `cid` = 15 更新父级时间...当一个模型belongsTo或者belongsToMany另一个模型时,如评论(comment)属于一篇文章(Post),有时更新子模型导致父模型时间更新非常有用 如当一个Comment模型更新时,

13.4K20

Laravel系列4.5】主从库配置和语法生成

但是你要知道是,Laravel 以及现代化所有框架都是可以方便地配置主从分离。另外,我们还要再回去 查询构造器 中,看一下我们原生 SQL 语句拼装语法到底是如何生成。...这也是因为我们在某些业务中,需要在操作完数据后马上查询,主从之间延迟可能会导致查询从库数据不正确(这在现实业务中很常见)。...从这里我们可以看出,Laravel 是根据参数来判断是否使用从库连接进行查询,而我之前看过其它框架源码,是 Yii 还是 TP 什么来着,有根据查询语句是否有 SELECT 字符来判断走从库去查询...语法生成 讲完连接了我们再回来讲讲数据库连接中非常重要一个东西,那就是 SQL 语句是怎么生成。这里使用是 语法 这个高大上词汇,实际上简单理解就是 查询构造器 是如何生成 SQL 语句。...其实我们在 查询构造器 那篇文章中就已经看到过 Laravel如何生成 SQL 语句了,还记得我们分析那个 update() 方法吗?

4.3K20

Laravel Eloquent ORM 实现查询表中指定字段

使用Laravel ORMModel方法find, get, first方法获取数据对象时返回数据对象attributes属性数组里会包含数据表中所有的字段对应键值关系, 那么如何在ORM查询时只返回数据表中指定字段数据呢...Builder是依赖查询构建器\Illuminate\Database\Query\Builder,first和get方法源码在Query Builder里如下: /** * Execute...LaravelORM方法查询返回指定字段可通过如下三种方法来实现 $data = ModelA::find($id, ['column1', 'column2']); $data = ModelA...'column2']); $data = ModelA::where(['column1', '=', 'value'])- get(['column1', 'column2']); 在不同场景下三者中选符合需要使用即可...以上这篇Laravel Eloquent ORM 实现查询表中指定字段就是小编分享给大家全部内容了,希望能给大家一个参考。

3.1K21

Laravel系列4.4】模型Eloquent ORM使用(二)

比如说我们可以使用类似于 array_map() 函数把集合中对象全部转换成数组,还可以用一个类似于 array_column() 函数只获取数据中两个字段组成键值对形式数据。...在所有模型都要继承 laravel/framework/src/Illuminate/Database/Eloquent/Model.php 类中,我们很快就能发现一个 query() 静态方法。...而不是我们之前 查询构造器 中 laravel/framework/src/Illuminate/Database/Query/Builder.php 对象。...但 Eloquent\Builder 内部持有的一个query 属性依然是 Query\Builder 对象,也就是说在底层,它依然是调用我们熟悉那个 查询构造器 来进行工作。...但是,这里划重点了,Eloquent\Builder 中有些方法是没有的,比如说 insert()、insertGetId() ,在模型中,使用 save() 就可以代替这两个方法操作。

2.8K20
领券