ユーザーの編集用に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');
}
コントローラで 'use App \ Http \ Requests \ EditUserRequest'を取得しましたか? – Jonathan
ええ、それは持っています –
laravelのバージョン? – Jonathan