问题描述
很抱歉问,我是 Laravel 的新手,我现在有一个项目正在工作。我想检查我的数据库中是否存在数据 ID
所以我的问题: 如果数据 ID 是新的,我想制作新的数据 ID 号,然后如果有多个数据 ID,我想制作数据的自动增量 ID 号。最近我在商店控制器中使用了此代码:
$data = FUP::where('id')->first();
$data = FUP::where('id')->first();
$bln = date('M');
$thn = date('Y');
if($data === NULL){
$no_usulan = '1'.'/UP/'.$bln.'/'.$thn;
}else{
$id = FUP::getId();
foreach ($id as $value)
$idlama = $value->id;
$idbaru = $idlama + 1;
$no_usulan = $idbaru.'/UP/'.$bln.'/'.$thn;
}
对于第一条记录数据进入if($data === NULL),但是对于第二条记录数据进入if($data === NULL)也不要进入else代码。
对不起,如果我的解释不好理解你们。
解决方法
首先,不要手动插入 id,将其留给数据库自动增量。其次,在您的查询中
$data = FUP::where('id')->first();
您忘记将 $id 参数传递给 where 查询,如下所示:
$data = FUP::where('id',$id)->first();
,
下面的工作
$data = FUP::find($id);
它比
$data = FUP::where('id',$id)->first();
并做同样的事情。如果您想自动返回 404 以防找不到与给定 id 匹配的任何记录,您甚至可以执行以下操作
$data = FUP::findOrFail($id);