2016-07-09 1 views
1

ユーザーの編集用にEditUsersRequest Requestが設定されていて、電子メールアドレスが一意になりますが、ユーザーは編集中です(編集するたびに電子メールアドレスを変更する必要はありません)ので、rules()関数でパラメータ$ requestを取得しました。これは昨日完璧にうまくいっていますが、私はコードを変更しませんでしたが、今はTarget [App \ Http \ Requests \ Request]というエラーが発生し続けています。ユーザーを更新しようとしています。これをどうすれば解決できますか?なぜそれが今働いていないのか分かりません。ここでは、要求とコントローラのためのコードは次のとおりです。ユーザーを更新しようとすると[App Http Requests Request]のインスタンスが生成されません

要求:

<?php 

namespace App\Http\Requests; 

use App\Http\Requests\Request; 
use Illuminate\Support\Facades\Auth; 

class EditUserRequest extends Request 
{ 
    public function authorize() 
    { 
     return Auth::user()->isActive() ? true:false; 
    } 

    public function messages() 
    { 
     return [ 
      'unique'=>'That email address is already registered', 
      'regex'=>'Password must contain at least 1 letter and 1 number' 
     ]; 
    } 

    public function rules(Request $request) 
    { 
     return [ 
      'name'=>'required|min:2|max:50', 
      'email'=>'required|email|max:50|unique:users,email,'.$request->get('id'), 
      'password'=>'required' 
      //'password'=>'required|min:8|regex:/[a-zA-Z][0-9]/' NOT IN USE WHILE IN DE 
     ]; 
    } 
} 

コントローラ方法:

public function update(EditUserRequest $request, $id) 
    { 
     $user = User::findOrFail($id); 

     if(trim($request->password) == '') { 
      $data = $request->except('password'); 
     } else { 
      $data = $request->all(); 
      $data['password'] = bcrypt($request->password); 
     } 

     if($file = $request->file('photo_id')) { 
      $name = time().'_'.$file->getClientOriginalName(); 

      $file->move('images', $name); 
      $photo = Photo::create(['path'=>$name]); 
      $data['photo_id'] = $photo->id; 
     } 

     $data['is_active'] = !$request->is_active ? 0:1; 

     $message = $user->update($data) ? "User {$user->name} has been updated": "Unable to update user {$user->name}"; 

     Session::flash('updated', $message); 

     return redirect('/admin/users'); 
    } 
+0

コントローラで 'use App \ Http \ Requests \ EditUserRequest'を取得しましたか? – Jonathan

+0

ええ、それは持っています –

+0

laravelのバージョン? – Jonathan

答えて

0

use Request; 

代わりの

use App\Http\Requests\Request; 
をお試しください
2

使用

use Illuminate\Http\Request; 

代わりの

use App\Http\Requests\Request; 

あなたもここで確認することができます:https://laravel.com/api/5.0/Illuminate/Http/Request.html

+0

それを試してみて、それはエラーを投げなかったが、実際に何らかの理由で –

0

$this->route('users')は、ユーザーIDを取得するために使用することができます。そのか$this->segment(3)が正しく動作します。ルートの使用はもう少しダイナミックです。

関連する問題