Слишком мало аргументов в классе пользовательских запросов laravel - PullRequest
0 голосов
/ 18 октября 2019

Я добавил пользовательский класс запросов для проверки данных при создании нового клиента в базе данных. По какой-то причине я получаю следующую ошибку:

Это мой класс пользовательских запросов: Too few arguments to function App\\Http\\Requests\\CreateTenantRequest::Illuminate\\Foundation\\Providers\\{closure}(), 0 passed and exactly 1 expected в строке 51, где закрывающая скобка для функции message ()

<?php

namespace App\Http\Requests;

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

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

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        $product_id = $this->get('product_id');

        return [
            'product_id' => 'required|exists:products,id|numeric',
            'name' => 'required|string|max:50',
            'email' => ['required',
                Rule::unique('tenants')->where(function($query) use ($product_id) {
                    return $query->where('product_id', $product_id);
                })
            ],
            'reseller_user_id' => 'numeric',
            'user_id_from_company' => ['required',
                Rule::unique('tenants')->where(function($query) use ($product_id) {
                    return $query->where('product_id', $product_id);
                }),
                'max:255'],
        ];
    }

    public function messages()
    {
        return [
            'user_id_from_company.unique' => 'The user ID already exists for this product',
        ];
    }
}

Ниже приведена фактическая функция в контроллере, которая вызывает проверку:

public function createTenant(CreateTenantRequest $request) {
    $request->validate();
    return 'valid!';
}

1 Ответ

2 голосов
/ 18 октября 2019

Удалите $request->validate() это из вашего контроллера.

...