Выполнение проверки Laravel без запроса $ - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь выполнить проверку без передачи переменной $ request, сможет ли кто-нибудь предоставить то, что я передаю через функцию проверки?Мой код ниже

public function change($id)
    {
        $user = User::find($id);

        $user->name = request("name");

        $user->date_of_birth = request("date");

        $user->email = request("email");

        $user->phone = request("phone");

        $user->address = request("address");

        $user->city = request("city");

        $user->postcode = request("postcode");

        $validator = Validator::make(request(), [
            'name' => 'required',
            'email' => 'email|string|max:255|unique:users',
            'phone' => 'required|numeric',
            'address' => 'required|numeric',
            'postcode' => 'required|numeric',
            'city' => 'required'
        ]);
        if ($validator->fails()) {
            return redirect("/user/edit")
                ->withErrors($validator)
                ->withInput();
        }
        $user->save();

        return redirect('/user');
    }

Опять же, я пытаюсь это сделать без запроса $ 1004 *

Любая помощь будет признательна!

Ответы [ 4 ]

2 голосов
/ 25 апреля 2019

Вы можете сделать это, передав массив, поэтому all() возвращает все переданные поля, попробуйте использовать его следующим образом:

$validator = Validator::make(request()->all(), ...

Другой совет - сначала выполнить проверку, затем найти пользователя и установитьего поля.В этом случае проверка может быть защитой.Вы также можете создать собственный запрос формы и установить там правила проверки.

0 голосов
/ 25 апреля 2019

Если вы не можете использовать $ request, используйте помощник для запроса, который можно использовать как Request::all(); или request->all();

0 голосов
/ 25 апреля 2019

Если вы не хотите использовать $request, вы можете просто использовать помощник request(). Например:

$user = User::find($id);

$user->name = request("name");

$user->date_of_birth = request("date");

$user->email = request("email");

$user->phone = request("phone");

$user->address = request("address");

$user->city = request("city");

$user->postcode = request("postcode");

request()->validate([
    'name' => 'required',
    'email' => 'email|string|max:255|unique:users',
    'phone' => 'required|numeric',
    'address' => 'required|numeric',
    'postcode' => 'required|numeric',
    'city' => 'required'
])

$user->save();

return redirect('/user');

Это прекрасно работает, если вы не хотите специально обрабатывать неудачную проверку другим способом.

0 голосов
/ 25 апреля 2019

Вы можете использовать фасад для извлечения этих данных и передачи их в валидатор,

$input = Request::all();

Вот документация .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...