Php 如何在laravel中创建/编辑多个有多个项目?
我有一个帖子和附件模型。帖子模型具有标题、正文属性。附件具有标题、文件属性。这篇文章有很多附件 在单个表单中,我希望用户能够添加/编辑多个附件 现在我是这样做的: Controller@edit:Php 如何在laravel中创建/编辑多个有多个项目?,php,laravel,laravel-4,Php,Laravel,Laravel 4,我有一个帖子和附件模型。帖子模型具有标题、正文属性。附件具有标题、文件属性。这篇文章有很多附件 在单个表单中,我希望用户能够添加/编辑多个附件 现在我是这样做的: Controller@edit: 将帖子的现有附件转换为数组,并将其与旧输入合并 表单视图: 循环浏览附件和输出字段 字段名称的格式为附件[id][title] 如果ID来自现有附件,则它将是一个整数。如果是新的,它将是一个随机数,小于1(Math.random()在Javascript中) Controller@upda
- 将帖子的现有附件转换为数组,并将其与旧输入合并
- 循环浏览附件和输出字段
- 字段名称的格式为
附件[id][title]
- 如果ID来自现有附件,则它将是一个整数。如果是新的,它将是一个随机数,小于1(
在Javascript中)Math.random()
- 字段名称的格式为
- 循环执行
Input::get('attachments')
- 如果键是整数,则验证附件以进行更新(文件不是必需的,我们可以使用现有文件)和更新
- 否则,它是新的附件,请验证它的创建并将其存储在数组中
- 如果所有附件都有效,请创建所有这些附件
- 如果存在验证错误,请重定向回
和withInput()
withErrors()
但是,返回时,错误与输入字段没有正确关联。我假设这是因为我使用数组而不是对象。有更好的方法吗?关于laravel,我可能会直接创建附件对象,然后将对象添加到帖子中。下面的文档中也对此进行了解释
您应该能够以相同的方式更新注释(当然不需要实例化新的附件对象)。验证如何?当存在验证错误时,我会将它们发回,我希望错误和旧输入都存在。这并没有发生。
$atachments = array(
new Attachment(array('title' => 'Attachment #1.')),
new Attachment(array('title' => 'Image Lol.')),
new Attachment(array('title' => 'The answer is 42.'))
);
$post = Post::find(1);
$post->attachments()->saveMany($comments);