尝试分配非对象Laravel 5.1的属性

时间:2016-02-09 17:22:35

标签: php laravel

有人可以告诉我为什么我会收到此错误吗?一切正常,直到开始:$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();   

    }  

   }

1 个答案:

答案 0 :(得分:1)

 $ticket = Ticket::where('code', '=', Input::get('code'))->count() > 0;

$ticket这里将是一个布尔值,而不是一个对象。它的实质与此类似:

$count = 12;
$iAmABooleanVariable = $count > 0;

这将为您提供集合对象:

$ticket = Ticket::where('code', '=', Input::get('code'))->get();

然后您可以在测试中使用它来查看计数是否为0:

if($ticket->count() > 0) {
    // Do something
}

如果只包含具有特定代码的一个票证,您可以执行此操作并获取一个模型对象,您可以在尝试时直接操作该对象做:

$ticket = Ticket::where('code', '=', Input::get('code'))->first();