2016-02-09 5 views
1

Может ли кто-нибудь сказать мне, почему я получаю эту ошибку? Все работает нормально до тех пор, пока это не запустится: $ticket->used += 1; Я четко нашел билет и сохранил его в переменной $ticket, но почему я не могу манипулировать им и назначить значение?Попытка присвоить собственность не объекта Laravel 5.1

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
$ticket = Ticket::where('code', '=', Input::get('code'))->count() > 0; 

$ticket здесь будет логическое значение, и не объект. Он похож по существу к этому:

Это поможет вам коллекции объект:

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

Что вы можете использовать в тесте, чтобы увидеть, если счетчик равен 0:

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

Если есть только один билет с определенным кодом, вы можете сделать это и получить модель объект, который вы можете управлять напрямую, как вы пытаетесь сделать:

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

Теперь я получаю это 'не определено свойство: загоритесь \ Database \ Eloquent \ Builder :: $ used' –

+0

Смотрите мое обновление, пренебрегли добавлением '-> get()' –

+0

Работает! Спасибо! –

Смежные вопросы