Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.5:插入后获取id_Php_Laravel_Laravel 5 - Fatal编程技术网

Php Laravel 5.5:插入后获取id

Php Laravel 5.5:插入后获取id,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有一个模型hotel.php来插入hotel数据。使用create()插入数据,但它没有返回id,返回的集合没有id字段 Controller.php hotel.php(模型) User.php(模型) 最后的结果呢 它没有id属性。我需要身份证上传图像 注意:我将primarykey更改为默认的“id”,但结果没有更改。 创建酒店。。。迁移 您必须更改酒店型号(或删除整条线路): 您的酒店模型将主键设置为slug: protected $primaryKey = 'slug'

我有一个模型hotel.php来插入hotel数据。使用create()插入数据,但它没有返回id,返回的集合没有id字段

Controller.php

hotel.php(模型)

User.php(模型)

最后的结果呢

它没有id属性。我需要身份证上传图像

注意:我将primarykey更改为默认的“id”,但结果没有更改。

创建酒店。。。迁移


您必须更改
酒店
型号(或删除整条线路):


您的酒店模型将主键设置为slug:

    protected  $primaryKey = 'slug'; 
我通常做的是,对于我的所有迁移,我设置如下自动增量:

$table->increments('id');
这样拉威尔就能为你处理一切。每个创建、更新或任何方法都会处理项目的id

这样,您就可以通过以下方式返回存储数据的id:

$id = create($data)->id;

其中,
$data
是包含新数据的模型
$id
现在应该包含最新存储的模型数据的
id
值。

您正在转储刚刚插入到不包含id字段的数据库中的数据

在控制器类中创建show方法,如下所示

public function show(User $user){
    dd($user)
} 
路线如下:

Route::get('user/{user}', 'Controller@show')

hotel.php
中,在
protected$filleble
声明之前尝试添加

protected $guarded = [
    'id',
];
在控制器的
store()
方法中,
$slug=(新酒店)->uniqueSlug($request->name)之后

尝试添加
$slug->save()
然后返回的slug应该有一个
ID
返回

和/或可能在生产线之后采用相同的类似策略

$hotel=$user->hotels()->创建($request->all())


通过添加
$hotel->save()

我将primarykey更改为default
id
$incrementing=true
现在返回所创建数据的
id
。我在Controller中更改了整个方法

您的表中是否有id列?是的,CURZ及其增量可能与yah重复。我做到了,我把它注释掉了。。但仍然不工作,并设置受保护的$primaryKey='id'
$hotel=$user->hotels()->创建($request->all());dd($hotel->id)结果是
null
$hotel=$user->hotels()->create($request->all())->id
Ahh。。仍然返回
null
在添加
$table->increments('id')之后,是否使用
php artisan migrate:refresh
刷新迁移行?如果没有其他方法,请再次请求它,即使它很脏而且非常奇怪:
Hotels::orderBy('created_at','desc')->first()啊。。。不,当我在其他控制器中尝试这种方法时,它是有效的。。。我在创作后就把它甩了。所以应该包含一个id字段。。其他型号都有。啊。。slug字段不在单独的表中
$table->increments('id');
$id = create($data)->id;
public function show(User $user){
    dd($user)
} 
Route::get('user/{user}', 'Controller@show')
protected $guarded = [
    'id',
];