Php 如何在空表上添加记录

Php 如何在空表上添加记录,php,laravel,Php,Laravel,我在MySQL数据库中有一个空表,我试图添加多条记录 (我这样做是因为我在跟踪和排序;如果我删除一条记录,则自动递增字段(id)跳过1个值。例如,我删除id=340,然后以下记录以值为341的id开始) 我在控制器中的函数中有一个If-Else语句,用于比较表小时数的id本身 public function showHours($id){ $complex = ComplexNew::find($id); $fields = CourtsComplex::all();

我在MySQL数据库中有一个空表,我试图添加多条记录

(我这样做是因为我在跟踪和排序;如果我删除一条记录,则自动递增字段(id)跳过1个值。例如,我删除id=340,然后以下记录以值为341的id开始)

我在控制器中的函数中有一个
If-Else
语句,用于比较表小时数的
id
本身

 public function showHours($id){

    $complex = ComplexNew::find($id);
    $fields = CourtsComplex::all();
    $hours = HoursNew::all();

    $last_hours = collect($hours)->last();

    if ($last_hours->id == $last_hours->id){

        $last_hours->id = $last_hours->id + 1;
    }else{

        return Redirect()->back();
    }
    return view('hours.FormNewHours')->with('complex', $complex)->with('fields', $fields)->with('last_hours', $last_hours);
}
这一行就是我出错的那一行

if ($last_hours->id == $last_hours->id){
    //DO SOMETHING
    // ...
}
错误是:
“正在尝试获取非对象的属性“id”

我还试图添加另一个if-else语句,类似于这样:

if(is_null($last_hours->id)){

    $last_hours->id = 1;
}else if($last_hours->id == $last_hours->id){

    //ADD +1 TO ID.
}
因为我希望如果表为空,则第一条记录的id必须以值=1开始,但如果表不为空,则将1添加到最后一个id,就像for语句一样,因为此条件始终将+1添加到最后一个id。

更改

$last_hours = collect($hours)->last();


加上
dd($last\u hours)
如果它返回object,那么尝试访问
id
比如
$last\u hours->id

你能
dd($last\u hours)吗?它返回什么?无需将
$hours
作为一个集合。已经是一个了。也就是说,这里发生了什么:
$last\u hours->id==$last\u hours->id
,这将始终评估为真?我已经用dd($last\u hours)进行了测试;它返回了一个空值。你为什么关心ID是否跳过了一些数字?@M4uriXD请检查我的更新答案。非常感谢:)我做了这些,并且在更正了一些小错误后解决了所有问题。欢迎高兴地知道:)你以前的答案也非常有用。
$last_hours = $hours->last();