Php 如何在空表上添加记录
我在MySQL数据库中有一个空表,我试图添加多条记录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();
(我这样做是因为我在跟踪和排序;如果我删除一条记录,则自动递增字段(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();