jeudi 26 mai 2016

How to make unique address to particular user only in laravel 5?

In my system what i want to include is that user can put three addresses.And that three addresses should be unique to that user only not other user.

I have used ajax validation for the system.But i couldnot figure out logic.

Everytime i try i got email address has already taken even to different user.

So could anyone can help me how to make unique address for particular user only.

Here what i have did is simply ajax post and validation.All code is correct simply i want logic to make unique validation in address_name field for particular userCustomer only.Thanks in advance.

Here is my code:

  public function AddNewAddress(Request $request)

    {
          if(!request()->ajax()){
            return false;
        }

        $customerId = Auth::user()->userCustomer;
        $user = Auth::user()
        $customer = $user->userCustomer()->firstOrFail()
        $userAddresses = $customer->customerAddresses()->latest()->get();
        $validator = Validator::make($request->all(), [
            'house_building'=>'required',
            'country_name'=>'required',
            'city_name'=>'required',
            'district_name'=>'required',
            'address_name'=>'required|unique:user_customer_addresses,address_name,'.$userAddresses->get('customer_id'),
            'street'=>'required',
            'house_floor_number'=>'required',
            'extra_direction'=>'required'
        ]);

        if ($validator->fails()) {

            return response()->json(array(
                'status' => 'fails',
                'errors' => $validator->getMessageBag()->toArray()
            ));
        }
        if ($validator->passes()) {
//
            $count = count($userAddresses);

            if ($count >= 3) {

                session()->flash('Address_message', 'Limit upto 3.Please delete one of your address for updating new address');
                return response()->json(array(
                    'status' => 'success',
                    'url' => url('user/AddressUpdate')
                ));

            } else {

                UserCustomerAddress::create([
                    'customer_id' => $customerId->id,
                    'city_name' => $request->city_name,
                    'district_name' => $request->district_name,
                    'house_building' => $request->house_building,
                    'address_name' => $request->address_name,
                    'street' => $request->street,
                    'house_building' => $request->house_building,
                    'house_floor_number' => $request->house_floor_number,
                    'extra_direction' => $request->extra_direction,
                    'floor' => $request->floor,
                    'building' => $request->building
                ]);

                session()->flash('Address_message', 'Your AddressInformation has been created');

                return response()->json(array(
                    'status' => 'success',
                    'url' => url('user/AddressUpdate')
                ));
            }
        }
    }

Thanks in advance.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire