Php Laravel 5.5:插入后获取id
我有一个模型hotel.php来插入hotel数据。使用create()插入数据,但它没有返回id,返回的集合没有id字段 Controller.php hotel.php(模型) User.php(模型) 最后的结果呢 它没有id属性。我需要身份证上传图像 注意:我将primarykey更改为默认的“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'
您必须更改
酒店
型号(或删除整条线路):
您的酒店模型将主键设置为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更改为defaultid
和$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',
];