Php 尝试分配非对象Laravel 5.1的属性
有人能告诉我为什么我会犯这个错误吗?一切正常,直到这开始:Php 尝试分配非对象Laravel 5.1的属性,php,laravel,Php,Laravel,有人能告诉我为什么我会犯这个错误吗?一切正常,直到这开始:$ticket->used+=1我很清楚地找到了一张票证并将其存储在$ticket变量中,但为什么我不能操纵它并赋值呢 public function getTicket(TicketUserRequest $request) { $ticket = Ticket::where('code', '=', Input::get('code'))->count() > 0; if ($ticket)
$ticket->used+=1
我很清楚地找到了一张票证并将其存储在$ticket
变量中,但为什么我不能操纵它并赋值呢
public function getTicket(TicketUserRequest $request)
{
$ticket = Ticket::where('code', '=', Input::get('code'))->count() > 0;
if ($ticket) {
$input['user_id'] = $request->user()->id;
$input['code'] = $request->input('code');
Auth::user()->balance += 50;
Auth::user()->save();
$ticket->used += 1;
$ticket->save();
TicketUser::create( $input );
return redirect()->back();
}
}
$ticket
这里将是一个布尔值,而不是一个对象。其实质与此类似:
$count = 12;
$iAmABooleanVariable = $count > 0;
这将为您获取一个集合对象:
然后,您可以在测试中使用它来查看计数是否为0:
if($ticket->count() > 0) {
// Do something
}
如果假设只有一张带有特定代码的票证,您可以这样做,并获得一个模型对象,您可以在尝试操作时直接对其进行操作:
$ticket = Ticket::where('code', '=', Input::get('code'))->first();
现在我得到了这个
未定义的属性:illumb\Database\Eloquent\Builder::$used
Np。仅供参考,如果没有找到与查询匹配的记录,我相信first()
将返回null
,因此您不必更改if
测试
if($ticket->count() > 0) {
// Do something
}
$ticket = Ticket::where('code', '=', Input::get('code'))->first();