从资源控制器调用自定义请求验证


Calling Custom request validation from resource controller

我需要帮助来使用自定义请求类验证进行验证,但由于我的控制器是资源控制器,因此无法将自定义请求类添加为参数。任何想法如何从资源控制器调用自定义请求验证?

这是到我的资源控制器的路由

Route::resource('customers', 'CustomerController');

这是我的客户请求类

class CustomerRequest extends Request
{
    //...
    public function rules()
    {
        return [
            'customer_type'=>'required|',
            'customer_vendor'=>'required|',
            'customer_name'=>'required|',
            'company_name'=>'required_if:customer_type,Company',
            'job_position'=>'required|',
            'street'=>'',
            'city'=>'required|',
            'country'=>'required|',
            'website'=>'url',
            'phone'=>'required_unless:mobile|',
            'mobile'=>'required_unless:phone|',
            'email'=>'email',
        ];
    }
}

这是我的资源控制器:

class CustomerController extends Controller
{
    // ....
    // Add Customer
    public function store()
    {
        //how do i call custom request validation here
        return view('create_views/new_customer',['title' => 'New Customer','nav_links'=>CustomerController::$Links]);
    }    
}

解决

当您使用 php artisan 创建自定义请求时,授权函数返回 false,如果我们已登录,我们需要返回 true:

public function authorize()
{
    return false;//should be return true;
}

你只需要在你的控制器方法(store())上键入提示请求(CustomerRequest)。

public function store(CustomerRequest $request)
{
    return view('create_views/new_customer',['title' => 'New Customer','nav_links'=>CustomerController::$Links]);
} 

已解决

当您使用 php artisan 创建自定义请求时,授权函数返回 false,如果我们已登录,我们需要返回 true:

public function authorize()
{
    return false;//should be return true;
}