2

简而言之,Laravel 的 eloquent 是否有类似它的sync()功能,不会立即将关系保存到数据库?

我有两个模型

Place (id, name, address);

Feature (id, name);

这两个模型使用数据透视表彼此具有 has_many_and_belongs_to 关系 feature_place(place_id, feature_id)。这按预期工作。现在我正在尝试构建一个用于创建新地方的表单。该表单包含每个现有功能的复选框。对于错误处理,我希望能够在提交表单时创建一个 Place 对象。我希望能够创建我的HABTM关系,因此如果提交失败(验证错误或类似情况),我可以轻松地重建并填写表格。sync()通常会处理关系,但由于提交失败,我还不想在数据库中插入 Place。有没有一种简单的方法,比如,在我和它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 回答