【问题标题】:Calling Custom request validation from resource controller从资源控制器调用自定义请求验证
【发布时间】:2016-11-12 04:51:12
【问题描述】:

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

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

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;
}

【问题讨论】:

    标签: php laravel-5.2


    【解决方案1】:

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

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

    【讨论】:

    • 我之前试过了,它返回一个禁止页面!但我可以输入提示public function store(Request $request)
    • 您是否以用户身份登录?
    • 是的,我已登录,我还尝试禁用 $this->middleware('auth'); 和 authrize()。问题是这是一个资源控制器,在常规控制器中,类型提示可以完美运行。
    【解决方案2】:

    已解决

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 2017-06-23
      • 2017-05-30
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      相关资源
      最近更新 更多