2013-03-27 5 views
0

방금 ​​L4 (스켈레톤과 패키지 모두)를 최신 버전으로 업데이트했습니다.Laravel 4 - 무시 무시한 질량 할당으로 인해 업데이트 후 빈 레코드가 생성됩니다.

이제 모델 중 하나의 새 인스턴스를 만들어 DB에 저장하려고하면 타임 스탬프와 기본 키를 제외하고 빈 레코드가 생깁니다.

이 문제는 모든 모델 (사용자, 입찰가, 프로젝트 등 ...)에서 지속되므로 로컬 문제가 아닙니다.

나는 모두

Project::create($project); 

하고, following this thread 시도 :

$new_project = new Project; 

$new_project->fill($project); 

$new_project->save(); 

을하지만 결과는 동일 : 빈 기록. 그것은 docs 대량 할당에서 밝혀

답변

5

그래서, 지금 보안상의 이유로 기본 (예를 들어, 필드 (Input::all()를 지정하지 않고 양식에서 모든 데이터를 가져 오는)과 DB가 원치 않는이 발생할 수 있습니다에 그대로 저장하여 차단 필드가 할당되는 경우, 클라이언트가 DB의 필드에 해당하는 이름의 필드를 추가하여 양식을 조작하는 경우).

블랙리스트를 만들고, 하나는 명시 적 대안 모델에 보호 $fillable 배열에 화이트리스트으로 문제의 필드를 추가하거나해야 할당 할 수있는 필드를 지정하려면 $guarded 배열

+0

에 직면했다을 사용 = 배열 ​​(); 귀하의 모델에서. – malhal

0

내가이 넣어 보호 $를 채울를 구현하려면 같은 문제 발견 해결 희망 도움을 다른 사람

$new_project = new Project; 

$new_project->unguard(); 

$new_project->create($project); 

$new_project->reguard(); 


or 

Project::unguard(); 
$new_project = Project::create($project); 
$new_project->reguard(); 
+0

guarded/fillable 속성을 사용하면 여기에서 대량 할당 보안이 완전히 제거되었습니다! –

+0

예 예전의 게시물을 볼 수 있듯이 guarded/fillable 속성을 따르고 있습니다. – umefarooq