【问题标题】:updating multiple data using edit form laravel使用编辑表单 laravel 更新多个数据
【发布时间】:2015-05-30 17:05:25
【问题描述】:

我将以下代码作为控制器内部方法的一部分 使用编辑表单更新其各自图像的多个标题,但它仅使用最后一个输入值更新 1 个标题

 $captions = $request['caption'];
        foreach($captions as $key=>$caps){
            $image->update([
                'caption' => $captions[$key]
            ]);
        }

【问题讨论】:

  • 需要查看更多代码(特别是 $image 的来源),但可能需要在 foreach 中重新实例化 $image
  • @mopo922 这里是图像的代码来自 $image = Image::where('user_id','=',Auth::user()->id)->firstOrFail();
  • 所以firstOrFail() 意味着您只获得与该用户关联的第一张图片。然后在您的循环中,您将一遍又一遍地更新同一张图片的标题,直到剩下最后一个标题。
  • @mopo922 是的,我想是的,但我坚持它现在找不到解决这个问题的方法,对不起我的错误代码逻辑:(你能帮我解决这个问题吗?跨度>

标签: php laravel laravel-5


【解决方案1】:

您需要在foreach 循环内实例化您的$image,以便每次更新不同的图像。像这样的:

$captions = $request['caption'];
foreach($captions as $key=>$caps){
    $image = Image::where('user_id', '=', Auth::user()->id)
        ->where('id', '=', $key) // pseudo code
        ->firstOrFail();
    $image->update([
        'caption' => $captions[$key]
    ]);
}

我不知道你的数据库结构是什么样的,或者$key是否对应一个图像ID,但// pseudo code这一行只是建议你需要抓取应该与这个标题相关联的图像.

【讨论】:

  • 谢谢,但我的图像和标题属于 1 个表,这就是为什么“->where('image_id','=',$key)”会给出错误消息“模型没有查询结果”
  • @seamons 你如何将每个标题与正确的图像关联起来?
  • 我的图像表中有这个字段“id | user_id | filepath | caption”
  • @seamons 我还是不明白你怎么知道$request['caption'] 中的哪个标题与数据库中的哪个图像相配?这就是你必须弄清楚的,答案会告诉你我的// psuedo code 线路该怎么做。
  • 我应该为标题创建另一个表来解决这个问题吗?或在我的图像表中添加另一个字段以获得解决方案?我认为这是我的问题代码不知道它将更新哪些数据
猜你喜欢
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
  • 2021-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多