Laravel Eloquent - 更新关系中的字段

时间:2017-10-11 09:09:18

标签: php laravel eloquent

我正在寻找一种更好的写作方式。我觉得必须有更好的方法吗?

class link extends Model
{
    public function click()
    {
        return $this->hasOne('App\click', 'id' ,'click_id');
    }

}

class click extends Model
{
    public function link()
    {
        return $this->hasOne('App\link');
    }
}

型号:

{{1}}

顺便说一下。一切正常,只是希望改进我的代码编写:)

2 个答案:

答案 0 :(得分:1)

public static function logClick($lId){
    click::whereHas('link', function($q)use($lId){
        $q->where('id', $lId);
    })
    ->increment('clicks');
}

这应该

编辑:如果您想返回点击次数

public static function logClick($lId){
        $click = click::whereHas('link', function($q)use($lId){
            $q->where('id', $lId);
        })
        ->increment('clicks');
        return $click->clicks;
    }

这一个班轮的优势在于是一个查询。如果$q->where('id', $lId);无效,请务必使用$q->where('links_table_name.id', $lId);

答案 1 :(得分:1)

public static function logClick($lid)
{
    $clicks = link::find($lid)->click;
    $clicks->increment('clicks');
    return $clicks;
}