2017-05-08 1 views
0

뮤 테이터를 무시하고 나는 다음 뮤 테이터 있습니다Laravel 내가 Laravel의 뮤 테이터 기능을 사용하고

public function setFirstNameAttribute($value) 
{ 
    $this->attributes['first_name'] = strtolower($value); 
} 

그러나 나는 어떤 경우에는이 뮤 테이터를 무시해야합니다.

$model->attributes['first_name'] = 'New First Name With Capitals'; 

이는 뮤 테이터를 우회 :

+0

, 반드시이 필요할와 뮤 테이터를 제거하는 기능으로 이동해야합니다! –

답변

3

답변을 제공하는 반면 공공 변수 모델에서, 예를 들어 $ preventAttrSet 이제

public $preventAttrSet = false; 

public function setFirstNameAttribute($value) { 
    if ($this->preventAttrSet) { 
     // Ignore Mutator 
     $this->attributes['first_name'] = $value; 
    } else { 
     $this->attributes['first_name'] = strtolower($value); 
    } 
} 

$user = new User; 
$user->preventAttrSet = true; 
$user->first_name = 'Sally'; 
echo $user->first_name; 
0

당신은 속성 자체를 설정할 수 달성 할 수있는 방법이 있습니까.

+0

PS. Nigel Ren이 한 의견에 동의해야합니다. 항상 뮤 테이터가 필요하지 않은 경우 뮤 테이터가 항상 데이터를 변경하는 데 사용되므로 플로우를 다시 디자인 할 수 있는지 확인하십시오. –

1

귀하의 경우에 따라 뮤 테이터를 무시하려는 경우 true로 공용 변수를 설정할 수 있습니다 설정 작동하는 것처럼 보이면 Laravel에서 원래 값에 액세스하는 방법이 있습니다.

이 게시물을 참조 : Example of getOriginal()

API 광고 :이 기능은 항상 필요하지 않은 경우 API Documentation

관련 문제