首页 > 解决方案 > Laravel Eloquent 可以递增 ($collection->increment('field')) 失败吗?

问题描述

我有一个看起来像这样的重定向功能。出于某种原因,它看起来有时会丢失来增加项目。我想知道它是否有时会因为一些缓存或其他原因而错过这个?

public function redirect($key)
{
    $item = $this->items->findOrFail($key);

    $item->increment('redirects');

    $encode = urlencode($item->_url);

    return view('item.redirect', ['url' => ($encode)]);
}

标签: laravellaravel-5eloquent

解决方案


我不确定你的问题的主题。你从 Laravel 的某个地方得到这样的方法吗?

我不知道$key这里有什么,但您应该确保这是单个 id(例如 2)而不是数组。

对于单个模型:

$item->increment('redirects');

将工作

但如果$key有时是数组,那么

$item = $this->item->findOrFail($key);

将是集合,所以increment方法会导致错误,因为 Eloquent 集合上没有increment方法。


推荐阅读