2

要するに、Laravelの雄弁にはsync()、リレーションシップをデータベースにすぐに保存しない機能のようなものがありますか?

私は2つのモデルを持っています

Place (id, name, address);

Feature (id, name);

これら 2 つのモデルには、ピボット テーブルを使用して、相互に has_many_and_belongs_to 関係があります feature_place(place_id, feature_id)。これは期待どおりに機能します。今、新しい場所を作成するためのフォームを作成しようとしています。フォームには、既存の各機能のチェックボックスが含まれています。エラー処理のために、フォームが送信されたときに Place オブジェクトを作成できるようにしたいと考えています。HABTM送信に失敗した場合 (検証エラーなど) にフォームを簡単に再構築して入力できるように、自分の関係を作成できるようにしたいと考えています。sync()通常は関係を処理しますが、提出が失敗したため、まだデータベースにプレイスを挿入したくありません。myと it's のsync()関係を作成する簡単な方法はありますか?PlaceFeaturesフォームの送信が成功する前にデータベースに書き込むことなく、再構築時にフォームを再作成するために使用できますか?

4

1 に答える 1

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 );
于 2013-04-23T21:37:56.757 に答える