我在 Laravel-5.8 中有这个更新控制器
$leavetype = HrLeaveType::findOrFail($id);
$leavetype->leave_type_name = $request->leave_type_name;
$leavetype->leave_type_code = $request->leave_type_code;
$leavetype->description = $request->description;
$leavetype->company_id = Auth::user()->company_id;
$leavetype->created_by = Auth::user()->id;
$leavetype->created_at = date("Y-m-d H:i:s");
$leavetype->is_active = 1;
$leavetype->save();
$employeetypes = HrLeaveTypeDetail::where('leave_type_id', $id)->get();
foreach ($employeetypes as $key => $employeetypes){
$leavetypedetail = HrLeaveTypeDetail::where('leave_type_id', $id)->get();
$insert_array = [
'no_of_days' => $request->no_of_days[$key],
'employee_type_id' => $request->employee_type_id[$key], //$request->employee_type_id[$key],
'weekend_inclusive' => isset($request["weekend_inclusive$key"]) ? 1: 0,
'leave_type_id' => $leavetype->id,
];
$leavetypedetail->update($insert_array);
}
视角
@foreach($leavetypedetails as $key => $leavetypedetail)
<tr>
<td width="5%">
{{$key+1}}
</td>
<td width="30%">
<span>{{$leavetypedetail->employeetype->employee_type_name}}</span>
</td>
<td style="display: none">
<input type="hidden" name="employee_type_id[]" value="{{$leavetypedetail->employeetype->employee_type_name}}" class="form-control employee_type_id">
</td>
<td width="20%"><input type="number" name="no_of_days[]" value="{{$leavetypedetail->no_of_days}}" placeholder="Enter leave days here" class="form-control no_of_days" max="120">
</td>
<td width="10%"><input type="checkbox" name="weekend_inclusive{{$key}}" class="form-control" data-bootstrap-switch data-off-color="danger" data-on-color="success" data-off-text="NO" data-on-text="YES" value="1" {{ ($leavetypedetail->weekend_inclusive == 1 ? ' checked' : '') }}></td>
</tr>
@endforeach
当我提交表单时,我收到了以下错误:
BadMethodCallException:Method Illuminate \ Database \口才\集合::更新不存在app \ Http \ Controllers \ Leave \ leavetypescontroller . PHP(268):Illuminate \ Support \ Collection-
它指向这里:
$leavetypedetail-
我该如何解决?
谢谢
$leavetypedetail = HrLeaveTypeDetail::where('leave_type_id', $id)->get();
因为您正在使用“get()”....$leavetypedetail现在是一个集合,而不是查询生成器的实例,并且该集合没有更新方法
您可以替换:
$leavetypedetail->update($insert_array);
使用:
HrLeaveTypeDetail::where('leave_type_id', $id)->->update($insert_array);
foreach ($employeetypes as $key => $employeetypes){
$leavetypedetail = HrLeaveTypeDetail::where('leave_type_id', $id)->get();
$insert_array = [
'no_of_days' => $request->no_of_days[$key],
'employee_type_id' => $request->employee_type_id[$key], //$request->employee_type_id[$key],
'weekend_inclusive' => isset($request["weekend_inclusive$key"]) ? 1: 0,
'leave_type_id' => $leavetype->id,
];
$leavetypedetail->update($insert_array);
}
查询方式:<编码>-
还有一个不必要的foreach语句。您可以在不使用foreach循环的情况下更新多行
在这种情况下,可以使用以下代码:
... // other code here
$leavetype->save();
// after this line delete foreach and place only this code:
$insert_array = [
'no_of_days' => $request->no_of_days[$key],
'employee_type_id' => $request->employee_type_id[$key], //$request->employee_type_id[$key],
'weekend_inclusive' => isset($request["weekend_inclusive$key"]) ? 1: 0,
'leave_type_id' => $leavetype->id,
];
$employeetypes = HrLeaveTypeDetail::where('leave_type_id', $id)->update($insert_array);
我已经创建了一个视图来创建新的课程' create.blade.php '。我试图将这些数据存储在数据库中,但是我得到了以下错误: BadMethodCallException Method Illuminate\Http\Request::request 不存在。 我不确定是什么导致了这个错误,因为我已经在我的控制器中引用了请求名称空间。见下文; CoursesController.php; 创
我正在使用Laravel 5.8,在这个项目中,我想从数据库中的一个表中删除一些数据,所以我在Blade上对其进行了编码: 这是路线: 这是WalletController的控制器销毁方法: 但是一旦我运行这个,我就会收到这个错误消息: 方法照亮\数据库\雄辩\集合::de不存在。 那么这里出了什么问题?我如何解决这个问题?
我通常会用能言善辩的拉雷维尔分别选择我的物品 我得到的是一个照明\数据库\雄辩\收藏与一个项目。后来我把它们放在一个数组中,这样我就有了这些照明\数据库\雄辩\集合对象的数组。 然而,有时我需要更多,所以我会这样做: 这是一个包含多个项目的集合。有没有一个简单的方法来改变一个照明\数据库\雄辩\集合的数组中的几个项目与单项照明\数据库\雄辩\集合? 我当然能做到: 但再次从DB中选择似乎是一个相当
我正在使用laravel 5.5更新条目。问题是将主键“id”更改为“project_id”后出现的,主键是elequent默认主键。添加项目可以正常工作,但更新项目无法正常工作。这是我得到的错误。 方法save不存在。 这是我的模特。 这是我的控制器功能。
前言 在前两篇文章中,向大家介绍了定义关联关系的源码,还有基于关联关系的关联模型加载与查询的源码分析,本文开始介绍第三部分,如何利用关联关系来更新插入关联模型。 hasOne/hasMany/MorphOne/MorphMany 更新与插入 save 方法 正向的一对一、一对多关联保存方法用于对子模型设置外键值: public function save(Model $model) { $
我想验证我的表单输入,但它抛出我这个错误在我的Laravel.log文件 生产错误:消息为“Method[validateString]不存在”的异常“BadMethodCallException”在C:\xamplep\htdocs\testing\vendor\laravel\framework\src\Illuminate\Validation\Validator.php中:2405 这是我