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

时间:2016-07-09 21:46:53

标签: php laravel-5.2

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

这是我的资源控制器的路径

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创建自定义请求时,authorize函数返回false,如果我们已登录,则需要返回true:

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

<强>解决

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

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