Laravel 传递的参数1必须是App\Request的实例,而不是给定的illumb\Http\Request的实例

Laravel 传递的参数1必须是App\Request的实例,而不是给定的illumb\Http\Request的实例,laravel,eloquent,request,image-uploading,intervention,Laravel,Eloquent,Request,Image Uploading,Intervention,我在我的用户模型中创建了一个方法,用于为用户上传海报(带有干预): /** * Store user's poster. */ public static function storePoster(Request $request) { if($request->hasFile('posterUpload')){ $poster = $request->file('posterUpload'); $filename = time() .

我在我的用户模型中创建了一个方法,用于为用户上传海报(带有干预):

/**
* Store user's poster.
*/
public static function storePoster(Request $request) 
{
    if($request->hasFile('posterUpload')){

        $poster = $request->file('posterUpload');

        $filename = time() . '.'. $poster->getClientOriginalExtension();

        Image::make($poster)->resize(356,265)->save(public_path('/uploads/posters/'.$filename));

        $check = Setting_user::where([
                ['user_id', '=' ,Auth::user()->id],
                ['setting_id','=', 2],
        ])->first();

        if(!$check)
        {
            $setting = new Setting_user();
            $setting->user_id = Auth::user()->id;
            $setting->setting_id = 2;
            $setting->value = $filename;
            $setting->save();
            return back();
        }

        $check->value = $filename;
        $check->update();
        return back();

    }

}
在我的UserController中,我有另一个方法调用在用户模型中创建的静态方法:

/**
* Store user's poster.
*/
public function poster(Request $request) 
{
     User::storePoster($request);

}
这是我的路线:

Route::post('/user-profile/store/poster', 'UserController@poster');
这就是我导航到“/用户配置文件/商店/海报”时遇到的错误:

尽管如果我将所有逻辑从模型中移开,并将其放入我的UserController中,它仍然可以正常工作。 知道为什么吗


提前感谢。

您需要在控制器和模型中使用相同的请求类,因此在您的用户模型中,在类的顶部添加
使用illumb\Http\request
,告诉它要使用哪个请求类

添加使用App\Http\Requests;上课前
Argument 1 passed to App\User::storePoster() must be an instance of App\Request, instance of Illuminate\Http\Request given, called in C:\xampp\htdocs\laravel\laravel-paper-dashboard\app\Http\Controllers\UserController.php on line 29 and defined