2016-01-22 5 views
0

Это должно быть простое исправление, но оно не нажимает на меня. Я просто пытаюсь найти запись в своей таблице и увеличивать один столбец.Laravel Increment Column Value

$visits = DB::table('recently_visited') 
     ->where('profile_id',$user->id) 
     ->where('visitor_id',Auth::user()->id) 
     ->first(); 

Это точно возвращает запись базы данных, как при посещении dd $, здесь приведен пример вывода.

{#197 ▼ 
    +"id": 6 
    +"visitor_id": 2 
    +"profile_id": 2 
    +"times_visited": 6 
    +"last_visit": "0000-00-00 00:00:00" 
} 

Но тогда, когда я прикрепить «приращений на него ...

$visits->increment('times_visited'); 

я получаю ошибку ... Фатальная ошибка: Вызов неопределенной метод StdClass :: приращения()

Я также попытался сделать следующее ...

$visits = DB::table('recently_visited') 
      ->increment('times_visited') 
      ->where('profile_id',$user->id) 
      ->where('visitor_id',Auth::user()->id) 
      ->first(); 

Но я получаю ... Фатальная ошибка: Вызов функции-члена, где() on integer

Спасибо!

+0

OMG, да, он работает, когда опускает «first()». Я подумал, что это что-то простое. Очень признателен! –

+0

Ха-ха, пожалуйста! Рад, что вы видели мое предложение, прежде чем я удалю его. Это была догадка, но я не был уверен. :) В документации, -> increment() всегда вызывается в полном наборе результатов - и в определении метода Laravel для приращения я увидел, что increment() возвращает int, поэтому он не поддерживает цепочку методов после него. – mmccaff

+0

Отлично, спасибо за помощь! –

ответ

1

Опуская "first()" и цепочки "increment()" в запрос работает.

- Представлено mmccaff