профессионалов.
Я не могу использовать запрос формы для действия пользователя по обновлению, хотя я пытался использовать запрос формы.Я хочу использовать запрос формы.
По праву логика проверки формы запроса работает, но после этого данные, прошедшие проверку, не могут быть сохранены.(Также нет ошибок, они должны быть перенаправлены после обновления данных.)
Когда я не использую запрос формы (я пишу логику проверки и метод проверки непосредственно в действии обновления), данные могут быть сохраненыпосле прохождения проверки.
Вот код ...
UsersController - с логикой проверки
use Illuminate\Http\Request;
public function update(Request $request, $user) {
$user = User::findOrFail($user);
$request->validate([
'name' => [
'required',
'string',
'max:10',
'regex: /^[^ -~。-゚\x00-\x1f\t]+$/u'
],
'name_kana' => [
'required',
'string',
'max:20',
'regex: /^[^ -~。-゚\x00-\x1f\t]+$/u',
'regex: /^[ァ-ヶー]+$/u'
],
'email' => [
'required',
'string',
'email',
'max:255',
Rule::unique('users')->ignore($user->id),
],
'email_confirmation' => [
'required',
'same:email'
],
'birth_day' => [
'required',
'date'
],
'address' => [
'required',
'max:40',
'regex: /^[^ -~。-゚\x00-\x1f\t]+$/u'
],
'job_type_id' => [
'required'
],
]
);
$user->name = $request->name;
$user->name_kana = $request->name_kana;
$user->email = $request->email;
$user->birth_day = $request->birth_day;
$user->address = $request->address;
$user->job_type_id = $request->job_type_id;
$user->save();
return redirect('users/')->with('message', '情報を編集しました');
}
UsersController - с помощью запроса формы
use App\Http\Requests\UserProfileUpdateRequest;
public function update(UserProfileUpdateRequest $request, $user) {
$user = User::findOrFail($user);
$user->name = $request->name;
$user->name_kana = $request->name_kana;
$user->email = $request->email;
$user->birth_day = $request->birth_day;
$user->address = $request->address;
$user->job_type_id = $request->job_type_id;
$user->save();
return redirect('users/')->with('message', '情報を編集しました');
}
Форма запроса
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
// email項目で自分を無視するときにundefined $userの回避のため
use Illuminate\Support\Facades\Auth;
class UserProfileUpdateRequest 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()
{
// email項目で自分を無視するときにundefined $userの回避のため
$user = Auth::user();
return [
'name' => 'required|string|max:10|
regex:/^[^ -~。-゚\x00-\x1f\t]+$/u',
'name_kana' => 'required|string|max:20|
regex:/^[^ -~。-゚\x00-\x1f\t]+$/u|
regex:/^[ァ-ヶー]+$/u',
'email' => ['required', 'string', 'email',
Rule::unique("users")->ignore($user->id)],
'email_confirmation' => 'required|email|same:email',
'birth_day' => 'required|date',
'address' => 'required|max:40|
regex:/^[^ -~。-゚\x00-\x1f\t]+$/u',
'job_type_id' => 'required',
'password' => 'required|min:4|max:8|
regex:/^[a-zA-Z0-9]+$/u',
];
}
}