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

Laravel model::create()不返回主键

Laravel是一种流行的PHP开发框架,它提供了许多便捷的功能和工具来简化开发过程。在Laravel中,使用Eloquent ORM来处理数据库操作,其中包括使用模型(Model)来表示数据库表。

在Laravel中,使用model::create()方法可以方便地创建新的数据库记录。然而,有时候我们可能会遇到一个问题,即model::create()方法不返回主键。这是因为在默认情况下,create()方法只返回创建的模型实例,而不包含主键。

要解决这个问题,我们可以通过以下几种方式来获取新创建记录的主键:

  1. 使用create()方法后,可以通过访问模型实例的id属性来获取新记录的主键。例如:
代码语言:txt
复制
$model = Model::create($data);
$primaryKey = $model->id;
  1. 可以在模型中定义一个$primaryKey属性,指定主键的名称。例如:
代码语言:txt
复制
class Model extends Eloquent
{
    protected $primaryKey = 'custom_id';
}

然后,使用create()方法创建记录后,可以通过访问模型实例的custom_id属性来获取主键。

  1. 如果需要在创建记录后立即获取主键,可以使用insertGetId()方法。这个方法会返回新记录的主键值。例如:
代码语言:txt
复制
$primaryKey = Model::insertGetId($data);

总结一下,当使用Laravel的model::create()方法创建新记录时,如果需要获取主键,可以通过访问模型实例的id属性、定义$primaryKey属性或使用insertGetId()方法来实现。

关于Laravel的更多信息和相关产品,您可以参考腾讯云的文档和产品介绍:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

本文实例讲述了Laravel5.1 框架模型创建与使用方法。...自定义主键 Model主键默认是id,你也可以自定义: class Article extends Model { protected $primaryKey = 'article_id'; }...2.3 时间戳 在咱的数据表之中 有create_at 和 update_at 两个时间戳 是Laravel自动管理的,如果你不想要自动管理这两个列 可以这样做: class Article extends...Model'; $article- save(); } 3.2 批量创建 批量赋值就是使用create方法来生成一个model返回这个新插入的model,在你使用create前必须检查model...Create Model', 'comment_count'= 10]); } ↑ 这是批量创建模型,有个细节哈 我们在fillable中没有添加comment_count 但是create方法中的数组有

1.9K71

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

('sex')- get(); //跳过一条数据后返回2条数据 $res=DB::table('student')- skip(1)- limit(2)- get(); 3.5、聚合函数 laravel...Laravel内置的Eloquent ORM提供了一种便捷的方式帮助你组织数据库数据,每张数据表都对应一个与该表进行交互的模型(Model),通过Model类,你可以对数据表进行查询、插入、更新、删除等操作...4.1、创建Model 在app文件夹下新建model文件,每个数据库都需要对应一个model,例如创建一个Student模板类: namespace App; use Illuminate\Database...\Eloquent\Model; class Student extends Model { //指定对应的表 protected $table='student'; //指定主键 protected...Eloquent默认的主键为’id’,且该字段为自增int型,如果需要自定义主键,可以通过$primaryKey来指定。

13.3K51

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

$primaryKey成员变量覆盖该字段名称,另外,Eloquent假设主键字段是自增的整数,如果你想用非自增的主键或者非数字的主键的话,必须指定模型中的public属性$incrementing为false...默认情况下,Eloquent期望表中存在created_at和updated_at两个字段,字段类型为timestamp,如果希望这两个字段的话,设置$timestamps为false first(); 使用find方法也可以返回多个结果,以Collection对象的形式返回,参数为多个主键 $flights...,laravel会自动返回给用户一个404的响应结果,因此如果希望找不到的时候返回404,是可以直接使用该方法返回的 Route::get('/api/flights/{id}', function (...方法可以执行批量为模型的属性赋值的插入操作,该方法将会返回新插入的模型,在执行create方法之前,需要先在模型中指定fillable和guarded属性,用于防止不合法的属性赋值(例如避免用户传入的is_admin

82020

Laravel学习记录--Model

']; 数据库添加 Model::create(['表字段名'=>'值','字段名'=>'值']) 简单查询 详情访问laravel查询构造器 $model->where()->first()//单行查询...'表名'//指定操作表 model 默认主键为 id 如果修改默认主键在其类名设置属性 protected $primaryKey = '主键名'//指定主键 laravel默认添加数据库时,会 增加两个字段...create_at ,update_at 如不需要这两个字段,除在迁移文件删除之外 还需在model类设置属性 public $timestamps = false 查询全局作用域 app\Scope...user_id localKey:默认当前模型类的主键IDsecondLocalKey:默认中间模型类的主键ID 在Countrie模型中使用hasManyThrough方法并返回结果 public...null,Eloquent允许我们为这种空对象定义一个默认的类型,这个对象类型在定义关联时指定,通过withDefault()方法(这个方法好像在前面提到过) withDefault()如果指定值默认返回

13.4K20

Laravel迁移数据库!

M = Model,是模型层,是与数据库直接对接的那一层设计。我们都知道一切应用的基础,是数据库。数据库也是IT工业的珠穆朗玛峰,看当今天下,多少大中小微企业,哪个不是被数据库卡着脖子。...我们本期要使用laravel自带的迁移功能,在操作任何数据库的条件下,完成基础的数据构建。 迁移文件 本文假设你已经正确地配置了环境变量文件,并且通过数据库配置项,系统已经可以正常连接到数据库了。...在项目文件里,不出意外你会在目录 database/migrations 下发现 2014_10_12_000000_create_users_table.php 文件, 这个是laravel自带的用于创建...比如主键默认的自增 id,还有用于记录创建时间 created_at 和 更新时间 updated_at,一个 timestamps() 方法就包含了, 只不过默认使用的是直观的整型时间戳,如果要使用...其实laravel提供了齐备的命令行脚手架, 下面的方法都可以用于创建一个迁移文件: php artisan make:migration create_users_table php artisan

1.1K00

Laravel迁移数据库!

M = Model,是模型层,是与数据库直接对接的那一层设计。我们都知道一切应用的基础,是数据库。数据库也是IT工业的珠穆朗玛峰,看当今天下,多少大中小微企业,哪个不是被数据库卡着脖子。...我们本期要使用laravel自带的迁移功能,在操作任何数据库的条件下,完成基础的数据构建。 迁移文件 本文假设你已经正确地配置了环境变量文件,并且通过数据库配置项,系统已经可以正常连接到数据库了。...在项目文件里,不出意外你会在目录 database/migrations 下发现 2014_10_12_000000_create_users_table.php 文件, 这个是laravel自带的用于创建...比如主键默认的自增 id,还有用于记录创建时间 created_at 和 更新时间 updated_at,一个 timestamps() 方法就包含了, 只不过默认使用的是直观的整型时间戳,如果要使用...其实laravel提供了齐备的命令行脚手架, 下面的方法都可以用于创建一个迁移文件: php artisan make:migration create_users_table php artisan

95010

Laravel 7 新特性-路由的趟坑之路(自定义键名以及作用域)

安装 Laravel 7 composer create-project --prefer-dist laravel/laravel blog 生成用户认证脚手架 composer require laravel...DB_USERNAME=root DB_PASSWORD=root 注意:我这里使用 laradock ,所以 DB_HOST 为 mysql 新建 Post 文章数据表 php artisan make:model...我们的以前的 URL 可能是如下这样: http://laravel7.test/posts/posts/1 我们是通过主键 ID 来进行查找的。...http://laravel7.test/api/users/2/posts/2 然而实际情况确 并非如此。数据也是返回来了。 ? 文档上就是这样呀?就是改变路由文件而已,照着做了,发现并不可以。...php namespace App; use Illuminate\Database\Eloquent\Model; class Post extends Model { public function

2.4K10

Laravel5.7 Eloquent ORM快速入门详解

这些方法返回单个模型实例而不是模型集合: // 通过主键获取模型... $flight = App\Flight::find(1); // 获取匹配查询条件的第一个模型......$flight = App\Flight::where('active', 1)- first(); 还可以通过传递主键数组来调用 find 方法,这将会返回匹配记录集合: $flights = App...批量赋值 还可以使用 create 方法保存一个新的模型。该方法返回被插入的模型实例。...create 方法返回保存后的模型实例: $flight = App\Flight::create(['name' = 'Flight 10']); 如果你已经有了一个模型实例,可以使用 fill 方法通过数组属性来填充..., Model $model) { return $builder- where('age', ' ', 200); } } Laravel 应用默认并没有为作用域预定义文件夹,所以你可以按照自己的喜好在

15K41

【说站】laravel模型中的$casts属性转换

按照以往的操作,在create的时候,先手动对特定的字段进行json_encode,然后再create; 而update的时候,先手动json_decode,修改完毕后再json_encode,然后再...update; 想想都觉得麻烦,虽然可以使用laravel模型事件,在对应的creating或updating的事件中去处理,但这也太大材小用了。...从 Illuminate\Database\Eloquent\Model 找到 Illuminate\Database\Eloquent\Concerns\HasAttributes ,会发现有很多属性可供配置..., 例如设置表名table,是否维护时间戳timestamps,可被批量赋值的属性fillable,主键字段名(默认id)primaryKey,主键字段类型(默认int)keyType,主键是否自增(默认是...可参考:laravel模型事件-update触发updating和updated的问题 先使用first或者find获取模型后再操作即可,当然,updateOrCreate也可以。。

1.6K10

laravel-nestedset:多级无限分类正确姿势

laravel-nestedset是一个关系型数据库遍历树的larvel4-5的插件包 目录: Nested Sets Model简介 安装要求 安装 开始使用 迁移文件 插入节点 获取节点 删除节点...一致性检查和修复 作用域 Nested Sets Model简介 Nested Set Model 是一种实现有序树的高明的方法,它快速且不需要递归查询,例如不管树有多少层,你可以仅使用一条查询来获取某个节点下的所有的后代...Nested set model 及它中文翻译!...嵌套集合模型 安装要求 PHP>=5.4 laravel>=4.1 v4.3版本以后支持Laravel-5.5 v4版本支持Laravel-5.2、5.3、5.4 v3版本支持Laravel-5.1 v2...bar节点没有主键,就是不存在,它将会被创建。 $delete 代表是否删除数据库中已存在的但是$data中不存在的数据,默认为不删除。

3.4K20

laravel与thinkphp之间的区别与优缺点

2、在实际开发中我们常常遇到这样的问题,就是开发地点固定。 这就造成了我们需要频繁的更改数据库配置,给开发工作造成了麻烦。...但是在Laravel里也可以直接使用:php artisan make:model Models/GoodsModel -m 完成模型的创建和建表结构的创建(/database/migrations)。...Schema::create(‘goods', function (Blueprint $table) { $table->increments(‘id')->comment(‘商品主键'); $table...github中pull下项目后在数据表里直接修改,只需要用: php artisan migrate:refresh 9、ORM 在介绍建表时已经使用了创建模型的命令: php artisan make:model...$request->session()->all();//返回所有数据 session(‘k'=>$v);//写入session保存数据 以及闪存数据session()->flash()和保留特定数据

5.5K20

Laravel和Thinkphp有什么区别,哪个框架好用

2、在实际开发中我们常常遇到这样的问题,就是开发地点固定。 这就造成了我们需要频繁的更改数据库配置,给开发工作造成了麻烦。...但是在Laravel里也可以直接使用:php artisan make:model Models/GoodsModel -m 完成模型的创建和建表结构的创建(/database/migrations)。...Schema::create(‘goods’, function (Blueprint $table) { $table->increments(‘id’)->comment(‘商品主键’); $table...github中pull下项目后在数据表里直接修改,只需要用: php artisan migrate:refresh 9、ORM 在介绍建表时已经使用了创建模型的命令: php artisan make:model...$request->session()->all();//返回所有数据 session(‘k’=>$v);//写入session保存数据 以及闪存数据session()->flash()和保留特定数据

5.9K20
领券