HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/netwerkbrabant/netwerkbrabant.nl/app/Http/Requests/RegisterRequest.php
<?php

namespace App\Http\Requests;

use Illuminate\Validation\Rule;
use Illuminate\Foundation\Http\FormRequest;

class RegisterRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    public function validationData()
    {

        $all = $this->all();

        // Remove the shipping fields if the other shipping field checkbox isn't checked
        // So the validation doesn't fail on these fields
        if (!isset($all['other_invoice_address'])) {
//            dd('remove');
            $invoiceFields = ['invoice_email', 'invoice_phone', 'invoice_address', 'invoice_postal', 'invoice_city',];
            foreach ($invoiceFields as $invoiceField) if (isset($all[$invoiceField])) array_forget($all, $invoiceField);
        }

        return $all;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [

            // Company Rules
            'name'             => 'required',
//            'email'            => ['required', 'email', Rule::unique('companies')->where(function ($query) {
//                return $query->where('deleted_at', null);
//            })],
            'email'            => 'required|email|unique:companies,email',
            'phone'            => 'required|different:name',
            'address'          => 'required|different:phone',
            'postal'           => 'required|different:address',
            'city'             => 'required|different:postal',
            'site_url'         => 'required|different:city',
            'region_id'         => 'required',
            'company_category_id'         => 'required',

            // Company invoice rules
            'invoice_email'   => 'required_with:other_invoice_address', 'email',
            'invoice_phone'   => 'required_with:other_invoice_address|different:invoice_email',
            'invoice_address' => 'required_with:other_invoice_address|different:invoice_phone',
            'invoice_postal'  => 'required_with:other_invoice_address|different:invoice_address',
            'invoice_city'    => 'required_with:other_invoice_address|different:invoice_postal',

            // User Rules
            'user_first_name' => 'required',
            'user_last_name' => 'required|different:user_first_name',
            'user_email' => ['required', 'different:user_last_name', 'email', Rule::unique('users','email')->where(function ($query){
                return $query->where('deleted_at', null);
            })],
            'user_phone' => 'required|different:user_email',
            'user_password' => 'required|min:8|different:user_phone',
            'user_repeat_password' => 'required|same:user_password',

            // Accept legal
            'accept_legal' => 'accepted',

        ];
    }

    /**
     * Get the error messages for the defined validation rules.
     *
     * @return array
     */
    public function messages()
    {
        return [
            'name.required' => __('site/auth.companyNameRequired'),
            'accept_legal.accepted' => __('validation.accept_legal_register')
        ];
    }
}