Php 关于拉威尔一世';我试图更新一个图像,但当我决定不添加新文件时,我得到了这个错误:一般错误:1364

Php 关于拉威尔一世';我试图更新一个图像,但当我决定不添加新文件时,我得到了这个错误:一般错误:1364,php,laravel,laravel-5,laravel-5.4,Php,Laravel,Laravel 5,Laravel 5.4,我正在尝试更新一个表,它工作得很好,但是当我尝试更新whiteout更改文件时,它失败了,并给我这个错误 错误: SQLSTATE[HY000]:一般错误:1364字段“poster”没有默认值(SQL:insert intoPATROCIADORES(nombre,link,categoria,更新日期,创建日期)值(PATROCIADORES,2017-05-01 23:44:442017-05-01 23:44)) 这是我的控制器存储() 公共函数存储(请求$Request){ $this

我正在尝试更新一个表,它工作得很好,但是当我尝试更新whiteout更改文件时,它失败了,并给我这个错误

错误:

SQLSTATE[HY000]:一般错误:1364字段“poster”没有默认值(SQL:insert into
PATROCIADORES
nombre
link
categoria
更新日期
创建日期
)值(PATROCIADORES,2017-05-01 23:44:442017-05-01 23:44))

这是我的控制器存储()

公共函数存储(请求$Request){
$this->validate(请求()[
'nombre'=>'required',
'链接'=>'必需',

'poster'=>'image | image_size:设置poster字段的唯一位置是在if语句中…因此如果$request->file()返回null,它将永远不会被设置…可能会发生什么情况

  $newFoto=request()->file('poster');
    if($newFoto){
      $name=$newFoto. '.' . $newFoto->getClientOriginalExtension();
      $patrocinadores->poster = $newFoto->move('./uploads/', $name);
    }
现在$newFoto是lightize\Http\UploadedFile的一个实例,它的move()方法返回一个file对象

您可以利用storeAs()方法将文件的路径存储在数据库中……如下所示:

$patrocinadores->poster = $request->poster->storeAs('uploads', $name);
请注意,这会将它存储在uploads(/storage/uploads)下的存储目录中,我更喜欢uploads(/storage/uploads),而不是root…现在更好了…您可以检查文件上载是否成功,用户可以在您身上中止

    if ($request->file('poster')->isValid()) {
        $patrocinadores->poster = $request->poster->storeAs('uploads', $name);
    }
    else{
        $patrocinadores->poster = 'path to default photo or avatar';
    }

希望这有助于……

回答得很好,非常感谢:)
$patrocinadores->poster = $request->poster->storeAs('uploads', $name);
    if ($request->file('poster')->isValid()) {
        $patrocinadores->poster = $request->poster->storeAs('uploads', $name);
    }
    else{
        $patrocinadores->poster = 'path to default photo or avatar';
    }