метод не разрешен - PullRequest
       3

метод не разрешен

0 голосов
/ 25 августа 2018

Я хочу проверить ввод в методе POST, но сообщение о результате показывает, что метод не разрешен. Вот мой код для создания нового пользователя в базе данных ( UserController.php )

public function userRegister(Request $request)
{
  $data['error']['state'] = false;
  $rules = [
    'name' => 'required',
    'username' => 'required|unique:username',
    'nip' => 'required|unique:nip',
    'email' => 'required|unique:email',
    'phone' => 'required',
    'avatar' => 'required',
    'password' => 'required',
    'faculty_id' => 'required',
    'building_id' => 'required',
    'room_id' => 'required'
  ];
  $message = [
    'required' => 'Fill the required field.',
    'username.unique' => 'Username already taken.',
    'nip.unique' => 'Staff ID already taken.',
    'email.unique' => 'Email already taken.',
  ];
  $validator = $this->validate($request,$rules,$message);

  if($validator->fails()){
     $data['error']['state'] = true;
     $data['error']['data'] = $validator->errors()->first();
  } 
  else{
        $data['user']['name'] = $request->input('user.name');
        $data['user']['surname'] = $request->input('user.surname');
        $data['user']['username'] = $request->input('user.username');
        $data['user']['nip'] = $request->input('user.nip');
        $data['user']['email'] = $request->input('user.email');
        $data['user']['password'] = Hash::make($request->input('user.password'));
        $data['user']['phone'] = $request->input('user.phone');
        $data['user']['level'] = $request->input('user.role');
        $data['user']['username_telegram'] = $request->input('user.username_telegram');
        $data['user']['user_email_action'] = $request->input('user.user_email_action');
        $data['user']['user_telegram_action'] = $request->input('user.user_telegram_action');
        $data['user']['faculty_id'] = $request->input('user.faculty');
        $data['user']['building_id'] = $request->input('user.building');
        $data['user']['room_id'] = $request->input('user.room');
        $data['user']['verified'] = 0;

        if(!empty($request->input('user.avatar'))){
            $data['user']['avatar'] = $request->input('user.username').'-'.$request->input('user.new_avatar');
        }
        else{
            $data['user']['avatar'] = 'default.png';
        }

        $user_id = DB::table('register')->insertGetId($data['user'],'id');
  }
  return response()->json($data);
}

Вот сообщение: Сообщение об ошибке

Знаете, как это решить? Спасибо.

1 Ответ

0 голосов
/ 25 августа 2018

Ваш вопрос не показывает маршруты вашего приложения, но вам нужно убедиться, что ваша форма установлена ​​на post

<form action="/my/url/path" method="post">

, а ваш маршрут установлен на 'post'

Например

Route::post('/my/url/path', 'MyController@userRegister');

Обратите внимание, что если вы не используете Laravel Collective, вам необходимо убедиться, что вы включили токен CSRF

<form method="POST" action="/my/url/path">
@csrf (laravel 5.6) 
{{ csrf_field() }} (previous versions)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...