Laravel - 控制器看不到图像输入

我的表格:


<form action="{{route('settings.update')}}" method="POST">

    @csrf

    <div class="col-sm-3">

        <div class="form-group">

            <label for="avatar">Upload a new one:</label>

            <input type="file" id="pic" name="pic"/>

         </div>

     </div>

     <div class="form-group">

         <button type="submit" class="btn btn-primary">Upload avatar</button>

     </div>

 </form>

我的控制器:


public function update_settings($request)

{

    $this->validate($request, [

        'pic' => 'required|image'

    ]);

    $path = $request->image->store('/img/');

    Auth::user()->image = $path;

    return view('pages.settings');

}

错误:


Too few arguments to function App\Http\Controllers\PagesController::update_settings(), 0 passed and exactly 1 expected


我在 $request 中只传递图像文件,但由于某种原因控制器看不到它,我做错了什么?


大话西游666
浏览 89回答 1
1回答

慕田峪9158850

要通过依赖注入获取当前 HTTP 请求的实例,您应该Illuminate\Http\Request在控制器构造函数或方法上对该类进行类型提示。当前请求实例将由服务容器自动注入:<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use Illuminate\Routing\Controller;class UserController extends Controller{    /**     * Store a new user.     *     * @param  Request  $request     * @return Response     */    public function store(Request $request)    {        $name = $request->input('name');        //    }}很好看,在我注入依赖的方法中Illuminate\Http\Request
打开App,查看更多内容
随时随地看视频慕课网APP