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

3分钟短文 | Laravel模型获取最后一条插入记录ID编号

代码比较简单,知识将 request input 内容复制给 Company 模型属性,然后调用 save 方法将数据存入。 那么,如果想要获取存入后数据条目的ID,如何返回呢?...其实,save 方法本身就是链式调用,会返回当前 Company 模型对象。...返回是当前写入条目的ID。...但是,如果是并发系统,或者流程处理,没有使用 Company 模型进行数据操作,而是 DB::statement,DB::insert 这些,获取到,可就不是最后ID了。...兼容写法,需要考虑多用户并发操作,以及数据更新源不同情况。那么需要使用独立方式: DB::getPdo()->lastInsertId(); 这样就可以了,基本上不会出错。

2.6K10

sql INNER JOIN 取得两个存在连接匹配关系记录(mysql)

在这里,INNER JOIN(内连接,或等值连接):取得两个存在连接匹配关系记录。...table2.age1; 在这里使用inner join 来联合table1和table2 使用INNER jion时,on和where条件区别如下: 1、 on条件是在生成临时时使用条件...,它不管on条件是否为真,都会返回左边记录。...2、where条件是临时生成好后,再对临时进行过滤条件。这时已经没有left join含义(必须返回左边记录)了,条件不为真的就全部过滤掉。...是否输出结果把两给结合起来了,你们发现,age1不同数据并没有输出出来,其实这样结果比较像数学交集呢?这个就是 INNER jion

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

解决laravelleftjoin带条件查询没有返回右为NULL问题

问题描述:使用laravel左联接查询时候遇到一个问题,查询带了右一个筛选条件,导致结果没有返回右为空记录。...角度上说,直接加where条件是不行,会导致返回结果不返回class为空记录,正确是写法应该是 select u.user_id,c.class from users u left join class...u.user_id=c.user_id and c.status=2; 没错,正确写法是left join .. on .. and 而非 left join .. on .. where 2.那么,laravel...里这个mysql表达式写法是怎样,我查阅了多个手册。。。...以上这篇解决laravelleftjoin带条件查询没有返回右为NULL问题就是小编分享给大家全部内容了,希望能给大家一个参考。

6.8K31

Laravel代码简洁之道和性能优化

IGNORE 支持 先简单说明一下业务场景: 首先结构设计是:互相喜欢和添加联系人都是双向关系,即入库A B,B A这样成对双向数据 触发互相喜欢,插入2条双向数据,插入之前校验是否存在,存在不重复添加...这可以是单个记录或多个记录。 第二个参数是唯一标识记录列。除 SQL Server 外所有数据库都要求这些列具有PRIMARY或UNIQUE索引。 提供要更新列作为第三个参数(可选)。...您还可以忽略重复键错误同时插入记录: Schema :: create ( 'users' , function ( Blueprint $ table ) { $ table ->... Laravel 5.5-5.7 ,这需要HasUpsertQueriestrait: class User extends Model { use \Staudenmeir\LaravelUpsert...->upsert(...); Eloquent ,所有版本 LumenHasUpsertQueries都需要该特性。

5.7K20

Laravel5.7 Eloquent ORM快速入门详解

所以,本例,Eloquent 认为 Flight 模型存储记录在 flights 。你也可以模型定义 table 属性来指定自定义名: <?...时间戳 默认情况下,Eloquent 期望 created_at 和 updated_at 已经存在于数据,如果你不想要这些 Laravel 自动管理数据列,模型设置 $timestamps...'bar')- cursor() as $flight) { // } 获取单个模型/聚合结果 当然,除了从给定获取所有记录之外,还可以使用 find 和 first 获取单个记录。...', 1)- max('price'); 插入/更新模型 插入 想要在数据库插入记录,只需创建一个新模型实例,设置模型属性,然后调用 save 方法: <?...请求 name 参数值给 App\Flight 模型实例 name 属性,当我们调用 save 方法时,一条记录将会被插入数据库。

15K41

Laravel5.1 框架模型创建与使用方法实例分析

分享给大家供大家参考,具体如下: Laravel模型也是访问数据库,它更加面向对象,一个模型对应着一张 我们可以使用模型对数据做一些增删改查操作。...2.3 时间戳 数据之中 有create_at 和 update_at 两个时间戳 是Laravel自动管理,如果你不想要自动管理这两个列 可以这样做: class Article extends...Model { public $timestamps = false; } 2.4 白名单和黑名单 当我们用到批量创建和批量修改时 必须声明黑名单或白名单,白名单属性是可以填充属性,黑名单属性是不允许被填充属性...,有个细节哈 我们fillable没有添加comment_count 但是create方法数组有comment_count键值。。。...结果呢 comment_count并没有被填充,原因是:它不在白名单 或者 它在黑名单。 4 更新 更新跟插入很像,也有两种方法 普通 和 批量

1.9K71

通过 Laravel 查询构建器实现简单增删改查操作

通过前面几篇教程预热,我们已经连接上数据库,创建好了数据,填充好了数据,接下来,就是 Laravel 应用实现对数据库增删改查了。...Laravel ,我们不推荐这么做,因为这些对数据结构操作可以通过数据库迁移功能来实现,而且那样做的话可维护性更好。...原生插入语句 想要在数据库插入一条记录,通过 DB 门面提供 insert 语句即可: $name = str_random(10); $email = str_random(10) . '@163...使用查询构建器进行增删改查 接下来,我们开始介绍 Laravel 数据库功能核心组件 —— 查询构建器(说是核心,是因为 Eloquent 模型底层也是基于这个查询构建器),日常开发,我们与数据库交互基本都是直接或间接通过它来完成...查询记录 要查询指定数据所有记录,可以通过以下方式实现: $users = DB::table('users')->get(); 该方法返回是一个包含所有查询结果 stdClass 集合:

4.1K20

Laravel Eloquent 模型关联关系(下)

注:实际开发为了提高查询性能,我们往往是 posts 冗余提供一个 comments_count 字段,每新增一条评论,该字段值加 1,查询时候直接取该字段即可,从而提高查询性能。...>orderBy('created_at', 'desc'); }]); 关联插入与更新 一对多关联记录插入 新增关联模型时候,可以模型上调用相应方法直接插入记录到数据库,这样做好处是不需要指定关联模型与父模型外键关联字段值...,与 save/saveMany 方法不同是,这两个方法接收是数组参数: // 插入一条记录 $post->comments()->create([ 'content' => $faker-...如果是要更新新创建模型实例所属模型(父模型外键字段,比如以 posts 为例,新增记录想要更新 user_id 字段,可以这么实现: $user = User::findOrFail(1);...多对多关联绑定与解除 插入多对多关联记录时候,可以通过上面一对多关联记录插入方式。

19.5K30

通过填充器快速填充 Laravel 测试数据

Laravel 框架,如果想要快速填充测试数据到数据库,可以借助框架提供填充器功能,通过填充器,我们可以非常方便地为不同数据快速填充测试数据。...填充器运行 Laravel 提供了两种方式来运行填充器:一种是独立填充命令,另一种是在运行迁移命令时通过指定标识选项创建数据时填充。...然后运行如下 Artisan 命令即可: php artisan db:seed 这样,就可以在数据 users 中看到新填充用户记录了: 当然,我们可以 UsersTableSeeder 类定义多条插入语句来一次性插入多条记录...,Faker 类库提供了丰富字段规则帮助我们生成伪造字段值,这些规则可以官方文档查看,这里,我们使用 调用模型工厂 调用这些模型工厂时候,需要借助 Laravel 提供全局辅助函数 factory...,替换成新模型工厂方式,代码瞬间简洁了很多,由于我们 UserFactory.php 全局定义了 User 模型模型工厂,所以在这里只需调用 factory 方法,传入对应模型类和要填充记录数即可

10K20

跟我一起学Laravel-EloquentORM基础部分

模型中使用protected成员变量$table指定绑定名。 <?...默认情况下,Eloquent期望存在created_at和updated_at两个字段,字段类型为timestamp,如果不希望这两个字段的话,设置$timestamps为false <?...使用find和first方法查询单个结果,返回单个模型实例 // 通过主键查询模型......方法时候,会自动为created_at和updated_at字段设置时间戳,不需要手动指定 批量赋值插入 使用create方法可以执行批量为模型属性赋值插入操作,该方法将会返回新插入模型执行...$deletedRows = App\Flight::where('active', 0)->delete(); 软删除 软删除是增加deleted_at字段,当删除记录时候不会真实删除记录

81920

laravel5.6框架操作数据curd写法(查询构建器)实例分析

,该方法会直接返回指定列值: $data = DB::table('users')- where('name','测试')- value('email'); //pluck() 方法获取单个列值数组...- get(); //orderBy() 方法排序 $data = DB::table('users') - orderBy('id', 'desc') - get(); //insert() 方法插入记录到数据...//insertGetId() 方法插入记录并返回自增ID值 $data=DB::table('users')- insert( [ 'name'= '测试', 'email' = 'ceshi.com...() 方法分页 每页显示数量 //注意:目前使用 groupBy 分页操作不能被Laravel有效执行 $data = DB::table('users')- paginate(2); //前台分页链接附加参数实现分页...mysql从5.7以后,默认开启group by严格模式。 解决方法:找到config/database​.php mysql下面把’strict’ = true,改为false。

2.2K30

3分钟短文:Laravel模型创建数据条目的2个语法糖

[img] 本期我们开始讲模型,如何插入新条目,或者更新既有条目。...代码时间 我们构建一个hello world页面的时候,已经介绍了如何使用laravel命令行脚手架创建新模型文件,以及通过迁移功能创建数据库。这样就把数据操作衔接起来了。...我们还有id字段,created_at字段,updated_at字段,并没有显式赋值。但是你打开数据库查看结果时候,发现那些值也成功写入了。...这样laravel处理模型数据时候,会默认更新此二字段。 然而,对于写入数据库那些数据,并不是所有字段都会允许写入模型内我们可以手动指定哪些字段可以写,哪些字段不可以写。...新建 or 更新 接着介绍laravel模型几个语法糖。一个常规场景,比如在写入数据时,先判断数据库内是否有该条记录,如果没有就创建,如何有则返回。

1.9K00

Laravel学习记录--Model

'//指定主键 laravel默认添加数据库时,会 增加两个字段 create_at ,update_at 如不需要这两个字段,除迁移文件删除之外 还需model类设置属性 public $timestamps...相匹配记录 dd($res); } 一对一反向关联 在上面我们从muser模型访问到phone模型,现在从phone模型访问muser模型 在此之前我们需phone模型定义muser...要建立这种多态管理,需要设置图片结构以及用户与文章关联,图片要额外添加两个字段,1,类型字段(table_type)保存所属模型类名。...调用save方法向Phone模型插入值 这里Eloquent自动phones添加了uid字段,并插入正确值 使用saveMany添加多个值 $user = \App\Muser::find...sid=1,cid=3两条记录被移除 当在次运行时,按照定义应该会在中间插入sid=1,cid=3记录 和我们猜想一样 插入数据 使用save插入单个数据(添加时需设置fillable定义运行添加字段

13.4K20

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

Active Record 中文意思是活动记录,特点是一个模型类对应数据库一个。...对于 Laravel 中标准 Eloquent 模型类来说,每个都应该有两个字段,一个是 updated_at ,另一个是 created_at ,分别是两个时间戳字段,用于记录数据创建时间和修改时间...其实所有的最好都有这两个字段,而且很多后台管理系统还需要有 创建人 和 修改人 记录。它们目的都是为了数据安全和记录可追溯。...如果你中有这两个字段的话,那么 Model 操作过程,你可以忽略这两个字段操作,Model 系统会自动设置它们。...但是我们今天演示,不需要这两个字段,所以也可以设置一个属性来关闭 Model 针对它们自动处理。

8.8K20

Laravel系列4.2】查询构造器

其实,查询构造器就相当于我们将原始 SQL 操作进行了一次封装而已。而且,模型,其实内部调用也是这个 查询构造器 。也就是说,查询构造器是介于 模型 和 原始语句 操作中间一层。...不过相对来说,模型需要每个都建立,而且间关系复杂的话 Model 类也会比较复杂,而查询构造器会更简单而且更方便使用。...当然,要使用哪种一般会是团队选择,而且往往更多情况下是 查询构造器 和 模型 两个结合起来使用。 好了,话说回来,我们还是看看代码。...我们又发现了一个设计模式 Laravel 框架应用,意外不意外,惊喜不惊喜! 连查询 普通查询使用还是非常简单,我也就不多说了,下面的代码也有演示。...一般查询,我们只需要一个外键相对应即可,但是实际业务开发,还会有遇到多个键相对应情况,这个才是我们接下来说重点问题。

16.8K10

orm 系列 之 Eloquent演化历程2

,也是laravel中一大亮点Artisan,Artisan是 Laravel 自带命令行接口名称,此处不做具体介绍了,有机会再细说,当我们命令行执行php artisan command时候...功能,主要是对数据库操作sql建模 此处Connectors是之前没有介绍过,Connectors是f917efa第一次加入,我们看下到底做了什么,其目录结构是: src/Illuminate...来实现,最终是通过将执行记录以log形式插入到数据库。...本文最后讲下Eloquent中新增对象之间关系:多态关系,以下内容摘自[ Laravel 5.3 文档 ] Eloquent ORM —— 关联关系 结构 多态关联允许一个模型单个关联下属于多个不同模型...文件,其最初是f851607加入,我们来看下Manager内容。

2.4K30

Laravel 模型事件应用

日常处理一些用户操作事件时,我们有时候需要记录下来,方便以后查阅,或者大数据统计。...Laravel模型事件处理起来很方便:https://laravel-china.org/docs/laravel/5.5/eloquent#events Laravel 模型事件有两种方式,...并在构造函数构建基本属性(CLI是因为命令行执行时不存在用户执行) LogBaseServer 新建一个观察器继承基类LogBaseServer(User模型,方法名字要对应文档事件...(我这挺多,之后大概长这样) 模型注册事件 然后我们触发一些事件(增删改,数据就有了) 事件 多对多关联插入不会出触发模型(比如attach方法) 这时候就需要自己新建事件类来模拟...注入两个参数,一个是角色,另一个是attach或者detach返回数组 PermissionRoleEvent 事件监听器PermissionRoleEventLog也继承基类LogBaseServer

17110

30分钟用Laravel实现一个博客

编辑这两个迁移文件 create_blogs // 首先类定义,有两个方法,up()可以理解为正向操作:创建,而 down()可以理解为回滚操作:删除。...---- 使用模型工厂 Factory 来插入虚构数据 日常开发,我们需要很多模拟数据进行测试,模型工厂作用就是帮我们快速,随机生成这些数据。...注意此时我们其实没有模型 Blog 和模型 Comment,我们只是创建了数据而已。因此我们再创建两个模型。 php artisan make:model Blog, 关于评论模型请自己写。...模型:/app/ 一个模型对应数据库一张数据。...总结 => 路由定义浏览器访问某控制器某方法地址,控制器完成一系列操作:如果需要操作数据库,需要调用模型,每一个模型对应一张

7.3K00
领券