2017-07-19 81 views
2

我创建了一个方法,我的用户模型上传海报(与干预)用户:参数1传递必须应用请求的情况下,给予照亮 HTTP 请求的情况下

/** 
* 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', '[email protected]'); 

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

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的正常工作。 任何想法为什么?

在此先感谢。

+0

add use App \ Http \ Requests;在你上课之前 –

回答

9

您需要在控制器和模型中使用相同的请求类,因此在您的用户模型中,在类的顶部添加use Illuminate\Http\Request以告知它要使用哪个Request类。

+0

太好了,那就是我想念的东西。 – Marco

相关问题