2013-07-04 2 views
0

나는 게시물 요청의 대량 할당에 관한 주제에 관한 간략한 문서를 읽었습니다.대량 할당의 이점과 사용하지 않아야하는 곳은 무엇입니까?

그래서 지금 내 마음에는 두 가지 질문이 있습니다.

1- 질량 할당의 이점은 무엇입니까?
2 대량 할당을 사용해서는 안되는 곳은 어디입니까?

+0

당신이 @KyleK 지금 추가이 게시물 – KyleK

+0

에 태그로 'laravel'를 추가 싶어 있습니다 아래에 주어진 더 나은 당신이 protected $guarded 속성에 민감한 필드를 추가해야합니다. 포인트 # 2에 대해 –

+0

을 사용하면 PHP가 "register_globals"를 검색하여 그러한 일이 (대개 거의 항상)있을 수 있습니다. –

답변

3

대량 양보의 이점은 대부분 적은 코드를 작성하는 것입니다. 실행 시간이 더 빠르지 않습니다 ...

그리고 이전의 일반 삽입 업데이트보다 안전성이 떨어졌습니다. 사용자 입력을 맹목적으로 모델로 전달합니다.

나는 그것을 사용하지 않으며 실제로 실제로 그렇게 할 적절한 시간을 실제로 발견하지 못했다.

0

개인적으로 비밀 번호 및 ID와 같은 수표없이 채우기 위해 중요한 필드를 보호하는 데 도움이 될뿐만 아니라 민감하지 않은 필드에 값을 신속하게 할당하는 데 도움이되므로 대용량 할당이 유용합니다. 대량 할당이 민감한 필드 보호하는 방법

: 그것은/채우기로 언급되지 않은 필드에 값을 할당 할 것 protected $fillable property의 질량은-할당합니다.

$user = new User; 
$user->first_name = Input::get('first_name'); 
$user->last_name = Input::get('last_name'); 
$user->email  = Input::get('email'); 
$user->save(); 

위의 방법은 허용하지만 당신은 더 많은 필드가 어떤 경우 : 아래에 주어진 예를 들어

당신은 User model with fields id, first_name, last_name, email, password. 당신은 first_name, last_name, email에 값을 할당 할 수 있나요? 이것은 대량 양도가 구출되는 곳입니다. 당신은 다음과 같은 방법으로 갈 수 있습니다 :

$user = new User; 
$user->fill(Input::all()); 
$user->save(); 

그러나 사용하기 전에

대량 할당 다른 아래에 주어진대로 필드, 당신은 모델의 보호 $의 작성 가능한 속성에 저장됩니다 대량 할당 할 있는지 확인해야합니다 현명한 당신이 대량 할당 예외를 얻을 것이다 :

protected $fillable = ['first_name', 'last_name', 'email']; 

참고 : 당신의 protected $fillable 속성에 password 같은 민감한 분야를 포함하는 위험 할 것입니다.

protected $guarded = ['id', 'password'];