参数1后必须应用\请求的情况下,照亮例如\ HTTP \请求给予

问题描述 投票:3回答:1

我在我的用户模型上传海报(与干预)为用户创建的方法:

/**
* 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');

这是我得到的,当我浏览了错误“/用户配置文件/存储/海报”:

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

虽然如果我从模型中移动所有的逻辑,并把它放在我的UserController的正常工作。任何想法,为什么?

提前致谢。

laravel eloquent request image-uploading intervention
1个回答
25
投票

您需要使用相同的请求类的控制器和模式,让你的用户模型在类告诉它要使用的请求类的顶部添加use Illuminate\Http\Request

© www.soinside.com 2019 - 2024. All rights reserved.