私はユーザーの詳細を更新するフォームを持っていますが、ユーザーが電子メールアドレスではなく名前を更新したいのであれば、それは変わりません。しかし私の全努力にもかかわらず、私はそれを回避することはできません。Laravel request、update validation
電子メールはまだ
を[email protected]され、私は自分のプロフィールを更新していますそれは私スロー:
それでは、私の電子メールがあるとしましょう電子メールは一意でなければならないというエラーです。
だから私はこれを試してみました:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UserRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|alpha_spaces|min:5|max:30',
'email' => 'required|email|unique:users,email,'.$user->id,
'telephone' => 'required|numeric|max:15',
'twitter' => 'alpha_dash',
'facebook' => 'alpha_dash',
'instagram' => 'alpha_dash',
];
}
public function messages()
{
return [
'name.required' => 'Name is required',
'name.alpha_spaces' => 'Name can only contain letters and spaces',
'name.min' => 'Name must contain at least 5 characters',
'name.max' => 'Name can only contain up to 30 characters',
'email.required' => 'Email address is required',
'email.email' => 'Email address must be a right format',
'email.unique' => 'Email address must be unique',
'telephone.required' => 'Telephone is required',
'telephone.numeric' => 'Telephone can only contain numbers',
'telephone.max' => 'Telephone can only contain maximum of 11 characters',
'twitter.alpha_dash' => 'Twitter can only contain letters and dashes',
'facebook.alpha_dash' => 'Facebook can only contain letters and dashes',
'instagram.alpha_dash' => 'Instagram can only contain letters and dashes',
];
}
}
しかし私が手:
未定義の変数:ここではユーザー
public function update(UserRequest $request, $id)
{
$user = User::find($id);
$name = $request->input('name');
$email = $request->input('email');
$twitter = $request->input('twitterp');
$facebook = $request->input('facebookp');
$instagram = $request->input('instagramp');
$telephone = $request->input('telephone');
$user->name = $name;
$user->email = $email;
$user->twitter_personal = $twitter;
$user->facebook_personal = $facebook;
$user->instagram_personal = $instagram;
$user->telephone = $telephone;
$result = $user->save();
if($result) {
$message = 'success';
}else{
$message = 'error';
}
return redirect()->back()->withInput()->with('message', $message);
}
あなたのルートとブレードコードを入れてください –
あなたは 'UserRequest :: rules()'メソッドで '$ user'変数を初期化していないので、エラーです。 – kajetons
どのように初期化できますか?私はそれをしようとしましたが、失敗しました –