【问题标题】:Column not found: 1054 Champ '0' inconnu dans field list未找到列:1054 Champ '0' inconnu dans field list
【发布时间】:2020-11-11 09:27:25
【问题描述】:

我试图更新一个公告,但它给了我

SQLSTATE 错误 [42S22]:找不到列:1054 中的未知“0”字段 字段列表(SQL:更新公告集图像=配置文件/ cbIhz3sDKQKQLuK51OjTVadgpI5BxZpX5cUhMHKB.jpeg, images =?, 0 = cat for sale63,1 = Lorem 63 ipsum dolor sit amet,consectetur adipisicing 精英Ipsum temporibus iusto ipsa, asperiores voluptas unde aspernatur 中? Aliquam, dolore !, 2 = 206231 , 3 = 个人资料 / cbIhz3sDKQKQLuK51OjTVadgpI5BxZpX5cUhMHKB.jpeg,4 =?, Annonces.updated_at = 2020-11-11 09:07:58 其中 id = 553)。

知道announces 表不包含字段0,但它包含我不想更新的其他字段 dd ($ request-> all ()) 显示很好,并且 annn 的数据显示在 edit.blade 中也很好。 AnnoncesController.php

 public function update(Request $request, $id)
    {

        $request->validate([
        'titre'      => ['bail','required', 'string','min:3'],
        'image'     =>  ['bail','required','max:2048'],
        'images.*'  =>  ['bail','required','max:2048'], 
     ]); 
        $annonce=Annonce::find($id);
        if($request->hasFile('image'))
       {
        $path = $request->image->store('profiles');
        $imagee = $request->image->store('storage');
        $request->image = $path;
        }
        $annonce->update([
            $annonce->titre       = $request->titre,
            $annonce->description = $request->description,
            $annonce->prix        = $request->prix,
            $annonce->image       = $request->image,
            $annonce->images      = $request->images
        ]);
        session()->flash('success', 'annonce updated successfully !!');
       return redirect('annonces'); 
    }

【问题讨论】:

  • 兄弟可以给我输出dd($id);开始函数
  • $annonce->titre = $request->titre 在那个循环中对我来说看起来很奇怪

标签: php laravel


【解决方案1】:

$annonce->titre = $request->titre 不是创建关联数组以在update 中使用的正确语法。

您需要以下内容:

 $annonce->update([
   'titre'       => $request->titre,
   'description' => $request->description,
   'prix'        => $request->prix,
   'image'       => $request->image,
   'images'      => $request->images
]);

写起来可能会更短:

$annonce->update($request->only([ 'titre', 'description', 'prix', 'image', 'images' ]));

如果您在模型中适当地使用 $fillable 属性来指定可以批量分配的属性,您也可以使用:

$annonce->update($request->all());

但是这里有一个问题,有人可能会填写一般可填写的属性,但您不想填写用户已完成的特定表格,因此不会进行验证。如果您针对所有可填写的字段进行验证,那么这是安全的。

【讨论】:

    猜你喜欢
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2019-01-25
    相关资源
    最近更新 更多