使用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]" />
......但是,这里有什么正确的方法?我想这是非常常见的,因为只要您的内容类型存储在多个表中,就会遇到它。
答案 0 :(得分: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'));
此外,这是一篇关于同一概念的文章。 Making many-to-many relationships easy
希望这有帮助!