如何解决ErrorException: 试图获取非对象的属性“max_score”
在我的 Laravel-5.8 应用程序中,我有以下代码:
控制器
$data = AppraisalGoalType::create([
'name' => $request->name,'parent_id' => $request->parent_id,'max_score' => $request->max_score,'company_id' => Auth::user()->company_id,]);
$data1 = DB::table('appraisal_goal_types')
->select('max_score')
->where('id',$request->parent_id)
->whereNull('parent_id')
->first();
if (!empty($request->max_score)) {
$data->update(['max_score1' => $data1->max_score]);
} else {
$data->update(['max_score1' => 0]);
}
查看
<div class="form-group">
<label class="control-label"> Max. Score:</label>
<input type="number" name="max_score" class="form-control" value="{{ old('max_score') }}" step="0.01" placeholder="Enter maximum weight here: 15,50,75 etc" style="width: 100%;">
</div>
当我尝试插入数据库时,出现此错误:
ErrorException: Trying to get property 'max_score' of non-object
我 dd($data);
并得到:
#original: array:12 [▼
"name" => "dxxddxdx"
"parent_id" => null
"max_score" => "56"
"company_id" =>
和 dd($data1);
给出了 null
,这是真的。我已经有了一个条件语句。
我看到它有 "max_score" => "56"
为什么会出现错误以及如何解决?
解决方法
您的选择语句不正确,您尝试选择 id = parent_id 和 parent_id = null 的第一行,因此这始终返回 null,因为 id 列自动递增,而父 id 是您从 request 获得的数字。并且在您的情况下 parent id 等于 null ,您将自动递增的值与返回 null 的空值进行比较。那意味着你的条件不正确。 尝试修复 select 语句。
我不了解您的业务,但我想尝试改变这种情况 -> where('id',$request->parent_id) 是 ->where('parent_id',$request->parent_id)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。