Я использую ларавель 7
У меня есть запрос, который я создал, но требуемое правило не работает. Запрос отправляется обратно без ошибок.
и dd() также не показывает данные запроса.
Функция:
public function store(StoreRequest $request)
{
dd($request->all());
if (!auth()->user()->can('add-users')) {
abort(401);
}
try {
$userStatus = app(CreateUser::class)->execute($request->all());
if ($userStatus == true) {
return redirect()->back()->with('success', 'User successfully created.');
} else {
return redirect()->back()->with('error', 'Oops Something went wrong!');
}
} catch (\Exception $ex) {
return redirect()->back()->with('error', $ex->getMessage());
}
}
Запрашиваемый код:
class StoreRequest 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','string','max:255'],
'email' => ['required','string','max:255'],
'password' => 'required',
'organization_id' => 'required'
];
}
}
Если я использую Illuminate\Http\Request
, показывающий данные запроса, но не проверяющий данные.
Есть идеи?
@zohrehda я редактирую пост, пожалуйста, проверьте
Я не вижу ничего плохого в вашем коде. Проверьте пространства имен, если у вас нет другого StoreRequest, введенного в метод контроллера.
@MahdiRashidi Я использую 2 запроса, храню и обновляю оба в одном месте, но оба не работают.
Если проверка не пройдена, вы вообще не войдете в контроллер. Вы уверены, что он попадает в контроллер, а не просто перенаправляется обратно с ошибками проверки?
Route::resource('user', 'Core\UserController');
этот пользовательский маршрут. назовите это списком 127.0.0.1/user
The incoming form request is validated before the controller method is called, meaning you do not need to clutter your controller with any validation logic. If validation fails, a redirect response will be generated to send the user back to their previous location. The errors will also be flashed to the session so they are available for display.
{{ \Session::get('error') }}
не показывает ошибку
Попробуйте этот раздел по отображению ошибок проверки
Пожалуйста, не используйте $request->all()
создание записи, потому что она включает все данные $request и является небезопасным способом. Вместо этого вы должны использовать $request->validated()
.
Пожалуйста, вы можете попробовать это
public function rules()
{
return [
'name' => 'required|string|max:255',
'email' => 'required|string|max:255',
'password' => 'required',
'organization_id' => 'required'
];
}
это тоже не работает
Можете ли вы удалить свой собственный валидатор, сделать dd данные вашего запроса и посмотреть, получите ли вы что-нибудь
он показывает данные запроса. Но при проверке запроса такая же проблема.
пожалуйста, можете ли вы показать, как вы ловите ошибки валодатора?
Пожалуйста, покажите свой метод контроллера полностью, я имею в виду имя метода и его аргументы