2013-04-19 3 views
2

즉, Laravel의 웅변은 sync()과 같은 관계가있어 데이터베이스와의 관계를 즉시 저장하지 않습니까?Laravel eloquent has_many_and_belongs_to 데이터베이스에 쓰지 않고 sync()

는 I 피벗 테이블 feature_place(place_id, feature_id)을 사용하여, 두 모델

Place (id, name, address); 

Feature (id, name); 

이 두 모델

서로 has_many_and_belongs_to와 관계가있다. 이것은 예상대로 작동합니다. 이제 새로운 장소를 만들기위한 양식을 작성하려고합니다. 양식에는 기존의 각 기능에 대한 확인란이 있습니다. 오류 처리를 위해 양식을 제출할 때 Place 개체를 만들 수 있어야합니다. 내 HABTM 관계를 만들 수 있기를 원합니다. 제출이 실패하면 (유효성 검사 오류 또는 유사) 양식을 쉽게 다시 작성할 수 있습니다. sync()은 대개 관계를 처리하지만 제출이 실패했기 때문에 데이터베이스에 아직 장소를 삽입하고 싶지 않습니다. sync()과 같은 쉬운 방법으로 내 Place과 양식을 다시 채우는 데 사용할 수있는 Features 사이의 관계를 만들 수 있습니까? 양식 제출이 성공하기 전에 데이터베이스에 쓰지 않아도됩니까?

답변

0

입력을 세션에 플래시 한 다음 양식이 렌더링 될 때 이전 값을로드해야하는 것처럼 들립니다.

// Somewhere in your post route 
if ($oh_noes_teh_validator_failed) 
{ 
    Input::flash(); 
    Redirect::to_route('my-edit-form'); 
} 

// Somewhere in your edit route or view 
$title = Input::old('title', $title); 
+0

그렇습니다.하지만 '새로운 장소 생성'과 '기존 장소 수정'모두 동일한 양식을 만들 수있는 모델 구조를 제공하지 않습니다. 현재 Former Building/Validation/Rebuilding을 처리 할 수 ​​있는지 확인하기 위해 [link] (http://bundles.laravel.com/bundle/former/) 이전 번들을보고 있습니다. 지금까지는 유망 해 보입니다. – Jarlskov