0

使用 laravel 4,您可以绑定到表单中的模型。

例如,以下代码会将表单绑定到 Post。

$post = Post::find(1);

Form::model($post, [
    'action' => ['PostController@update', $post->id], 
    'method' => 'PUT'
])

据我了解,为了保持数据库结构良好,我将有一个单独的类别表。因此,下面我将渴望将我的类别加载到我的 $post 中。

$post = Post::with('categories')->find(1);

我想编辑表格中的类别。但是怎么做?

我想html输出最终会是这样的:

<input type="text" name="categories[0][value]" />

...但是,这里的正确方法是什么?我想这是非常常见的,因为一旦您的内容类型存储在多个表中,您就会遇到这种情况。

4

1 回答 1

2

我做了一些类似于用户/角色的事情,我认为这些用户/角色与您的帖子/类别有相似的关系。

在您的 PostController 创建/编辑操作中,发送所有类别的对象:

$categories = Category::all();
return View::make('post.edit')->with(array('categories' => $categories)) // truncated for brevity

在您看来:

@foreach ($post->categories as $category)
    {{ Form::checkbox('p_categories[]', $category->id, false, array('id' => $category->id)) . Form::label($category->id, $category->name) }}<br />
@endforeach

在您的 PostController 存储/更新操作中:

$post->categories()->sync(Input::get('p_categories'));

此外,这里有一篇关于同一概念的写得很好的文章。 使多对多关系变得容易

希望这可以帮助!

于 2013-05-18T00:31:25.503 回答