Как проверить запрос в объектах json - используя laravel - PullRequest
1 голос
/ 10 апреля 2019

У моего json есть два объекта, один из которых user_profile, а другой - привилегии, но моя проверка работает только для объекта user_profile.

Мой json:

{
    "user_profile": {
        "email": "shahzad11@ovadamd.com",
        "password": "admin123",
        "password_confirmation": "admin123",
        "status": 0,
        "first_name": "Shahzad",
        "middle_name": "Hussain",
        "last_name": "Shah",
        "date_of_birth": "2015-01-01",
        "gender": "M",
        "area_id": 1,
        "address": "Minhatten NY",
        "city": "New York",
        "state": "Washington",
        "zip": "12312",
        "fax": "111-111-1111",
        "phone_extension": "2471",
        "work_phone": "111-111-1111",
        "phone_no": "111-111-1111",
        "emergency_contact": "111-111-1111",
        "social_security": "111-11-1111",
        "module_id": 2
        },

    "privileges": {

        "is_super_admin": 1,

      "facilities": [
          {
               "facility_id": 1,
              "is_facility_supervisor": 0,
              "speciality_id": 1,
              "priv_id": "",
              "role_id": 1
          }
      ]
  }
}

Я хочу проверить свой "привилегии "также.

Мой контроллер:

public function register(Request $request) {

    $body = $request->all();
    $userProfile = $body['user_profile'];
    $userPrev = $body['privileges'];
    $userProfile['is_super_admin'] = $userPrev['is_super_admin'];
    $facilities = $userPrev['facilities'];

    $bodyObj = array_merge($userProfile, $userPrev);
    $validator = UserValidations::validateUser($bodyObj);

    if ($validator->fails()) {
         return response([
             'status' => false,
             'message'   => __('messages.validation_errors'),
             'errors' => $validator->errors()->all()
        ], 200);
    }

и мой метод validateUser:

public static function validateUser($data = [], $update = false) {
    $rules = [
        'first_name'    => 'required|max:25',
        'last_name'     => 'required|max:25',
        "address"       => 'required|max:197',
        "city"          => 'required|max:20',
        "zip"           => 'required|max:5',
        "phone_no"      => 'required|max:12',
        "area_id"      => 'exists:areas,id',
        "phone_extension"   => 'min:3|max:5',
        'gender'        => 'in:M,F,X',
        "work_phone"    => 'max:12',
        "emergency_contact"    => 'max:12',
        "fax"   => "max:12",
        "social_security"      => 'required|max:11',
        "module_id" => 'exists:modules,id',

        // privileges object fields
        "role_id" => 'required|exists:roles,id',
        "facility_id" => 'required',
        "speciality_id" => 'required'
    ];


    if($update) {
        $rules['id'] = 'required|exists:users,id';
    } else {
        $rules['email'] = 'required|email|unique:users';
        $rules['password'] = 'required|min:6';
        $rules['password_confirmation'] = 'required_with:password|min:6|same:password';
    }

    return $validator = Validator::make($data, $rules);

}

Как я могу поставить проверку на объект привилегий?Ваша помощь будет высоко оценена!

Ответы [ 2 ]

1 голос
/ 10 апреля 2019
// privileges object fields
"facilities.*.role_id" => 'required|exists:roles,id',
"facilities.*.facility_id" => 'required',
"facilities.*.speciality_id" => 'required'

Я думаю, что это решит вашу проблему

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

вы можете сделать это

Validator::make($request->all(),[
    'your rules'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...