2017-10-01 2 views
0

Laravel mutator가 작동하지 않는 이유는 무엇입니까? "좋아"열의 값을 증가시키고 싶습니다. 주석 행은 잘 작동하지만, 뮤 테이타는 주석이 달린 행이 아닙니다.laravel mutator가 작동하지 않습니다.

public function updateLike(Request $request){ 
    $comment = Comment::find($request->id); 
    //$comment -> like = $comment-> like + 1; 
    $comment -> save(); 
} 

public function setLikeAttribute($value){ 
    return $this -> like = $value + 1; 
} 

답변

1

당신이 뮤 테이터

$this->attributes['like'] = $value + 1; 

에 있지만 경우에 이것을 사용할 필요 뮤 테이터가 자동으로 당신이 당신의 주석 코드가 아닌 뮤 테이터를 사용해야 값을 증가 사용되지 않습니다.

+0

좋아요, 나는 주석 행을 사용할 것이지만 왜 작동하지 않는지 이해하고 싶습니다. 나는 또한 당신의 샘플을 시도했다. 여전히 작동하지 않는다. – Jurchello

+0

샘플 코드의 기능은 실제로'like'에 값을 저장할 때마다 자동으로'+ 1'이 될 것이므로,'$ comment-> like = 2; $ comment-> save();', 데이터베이스에서'like'가'3' 인 것을 볼 수 있습니다. –

+0

예, 어떻게 작동해야하는지 알았지 만, 왜 mutator-method가 작동하지 않습니까? 나는 당신의 마지막 샘플에 따라 나의 데이터베이스에서 가치 2를 본다. – Jurchello

관련 문제