Php 从laravel 5.4中的空值创建默认对象

Php 从laravel 5.4中的空值创建默认对象,php,laravel,Php,Laravel,我尝试让我的用户更新他们的广告,单击“更新”按钮后,我将出现以下错误: ErrorException in AdController.php line 108: Creating default object from empty value 我的AdController行108是: $ad->company_id = Input::get('company_id'); 这是我表单中代码的引用行:正如您所看到的,company\u id字段不是空的,它会将companyid编号传递给该

我尝试让我的用户更新他们的广告,单击“更新”按钮后,我将出现以下错误:

ErrorException in AdController.php line 108:
Creating default object from empty value
我的
AdController
108
是:

$ad->company_id = Input::get('company_id');
这是我表单中代码的引用行:正如您所看到的,
company\u id
字段不是空的,它会将company
id
编号传递给该字段,该字段与
store
方法相同,在那里工作得很好,但对于
update
方法,返回此错误,另外,当我检查我的页面源代码时,有正确的公司id,并且不是空的

{!! Form::model($ads, ['route' => ['company.update', $ads->id], 'method' => "PUT", 'files' => true]) !!}
<input type="hidden" name="company_id" value ="@foreach ($companies as $company){{ $company->id }}@endforeach">

//the rest of the codes

{!! Form::close() !!}
{!!Form::model($ads,['route'=>['company.update',$ads->id],'method'=>“PUT”,'files'=>true])
//其余的代码
{!!Form::close()!!}
知道为什么吗?

解决了

问题是

$ad = Ad::find($id);
第108行之前的一行是

$ads = Ad::find($id);

之前,我想你应该试试这个:

$ad = Ad::where('id',$id)->first();
$ad->company_id = Input::get('company_id');

希望这项工作为你

@Bhavik因为如果我只通过{{$company->id}将获得
未定义变量:company
您没有
$ad->company\u id
此value@Bhavik这就是在html
@Rodrane中呈现的方式,它是ads表中的一列,当我第一次保存广告时,效果很好,并且保存发布广告的公司id,但为了更新,它不知何故是问题!可能重复的