我有这个功能:
public function store(Requests\OfferRequest $request)
{
$offer = new Offer($request->all());
Auth::user()->offer()->save($offer);
$maxoffer = Maxoffer::where('article_id', $request->input('article_id'))
->where('start', $request->input('start'))->get();
if($maxoffer == null)
{
Auth::user()->maxoffer()->create($request->all());
}
else
{
if($maxoffer->price < $request->input('price'))
{
$newOffer = Auth::user()->maxoffer()
->where('id', $maxoffer->id)
->update(['price'=>$request->input('price')]);
}
}
Alert::success('Offer is succesfully added!', 'Good job!')->persistent("Close");
return Redirect::back();
}
但我无法添加数据,因为我得到了这个:
OffersController.php第63行中的ErrorException:未定义的属性: Illuminate \ Database \ Eloquent \ Collection :: $ price in 在HandleExceptions-&gt; handleError('8'处的OffersController.php第63行, 'Undefined property:Illuminate \ Database \ Eloquent \ Collection :: $ price', 'C:\ wamp \ www \ bidbook \ app \ Http \ Controllers \ OffersController.php','63', array('request'=&gt; object(OfferRequest),'offer'=&gt; object(Offer), 'maxoffer'=&gt;对象(Collection)))在OffersController.php第63行
这里有什么问题?
答案 0 :(得分:1)
以下内容返回一个集合:
$maxoffer = Maxoffer::where('article_id', $request->input('article_id'))
->where('start', $request->input('start'))
->get(); // Returns a collection
所以你得到错误。只需将get
更改为first
,例如:
$maxoffer = Maxoffer::where('article_id', $request->input('article_id'))
->where('start', $request->input('start'))
->first(); // Returns a single Eloquent Object
现在,这将返回一个Eloquent Model
对象,如果找到任何模型,它将起作用。
答案 1 :(得分:0)
试试这个
$maxoffer = Maxoffer::where('article_id', $request->['article_id'])
->where('start', $request->['start'])->get();