我需要帮助来使用自定义请求类验证进行验证,但由于我的控制器是资源控制器,因此无法将自定义请求类添加为参数。任何想法如何从资源控制器调用自定义请求验证?
这是到我的资源控制器的路由
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;
}