【问题标题】:Call to a member function store() on null - laravel 5.4在 null 上调用成员函数 store() - laravel 5.4
【发布时间】:2021-07-20 17:53:18
【问题描述】:

我正在尝试上传图片,但每次提交时都会返回 store() on null 错误。我已将表单设置为 enctype="multipart/form-data" 这没有帮助。

谁能指出我正确的方向?

谢谢。

控制器内部的功能

public function store(Request $request){

  $file = $request->file('imgUpload1')->store('images');
  return back();

}

如下表格:

<form action="/imgupload" method="POST" enctype="multipart/form-data">
  {{ csrf_field() }}
  <div class="form-group">
     <label for="imgUpload1">File input</label>
     <input type="file" id="imgUpload1">
  </div>
    <button type="submit" class="btn btn-primary">Submit</button>
</form>

【问题讨论】:

  • 没有名称属性
  • 嗯......这对我来说很愚蠢。谢谢!
  • 这并不愚蠢,只需要新鲜的眼睛:)
  • 在您的输入标签内将 id 替换为这样的名称

标签: laravel laravel-5.4


【解决方案1】:

我遇到了同样的问题,我要解决的问题是在开始的表单标签中添加 enctype="multipart/form-data" 应该可以解决它。没有它,laravel 将无法理解该文件。

喜欢:

<form method="POST" enctype="multipart/form-data" name="formName">

【讨论】:

    【解决方案2】:

    始终使用表单输入中缺少的名称属性获取数据

    改变

    <input type="file" id="imgUpload1">
    

    <input type="file" id="imgUpload1" name = "imgUpload1">
    

    并像这样在控制器端进行一些验证

    $val = Validator:make($request->all, [
        'imgUpload1' => 'required',
    ]);
    
    if($val->fails()) {
       return redirect()->back()->with(['message' => 'No file received']);
    }
    else {
        $file = $request->file('imgUpload1')->store('images');
        return redirect()->back();
    }
    

    【讨论】:

      【解决方案3】:

      您需要在控制器中添加此代码

      if ($request->file('imgUpload1') == null) {
          $file = "";
      }else{
         $file = $request->file('imgUpload1')->store('images');  
      }
      

      【讨论】:

        【解决方案4】:

        您收到错误,因为您的商店功能没有从输入标签的请求中看到文件,因此要解决此问题,请设置我在下面所做的“名称”

        <form action="/imgupload" method="POST" enctype="multipart/form-data">
          {{ csrf_field() }}
          <div class="form-group">
             <label for="imgUpload1">File input</label>
             <input type="file" id="imgUpload1" name="imgUpload1">
          </div>
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-04-08
          • 2020-10-14
          • 1970-01-01
          • 1970-01-01
          • 2018-09-06
          • 2020-10-28
          相关资源
          最近更新 更多