在自定义表单请求中找不到路由


Route not found in custom form request

我使用命令php artisan make:request AddressBookRequest的laravel自定义表单请求
并在我的控制器中使用该请求,如:

public function add_address_book($lang,$user_id,AddressBookRequest $request){
 dd($request);
}

当我运行api路由时,laravel显示:

 NotFoundHttpException in RouteCollection.php line 161:

但当我把AddressBookRequest改成Request时,比如:

 public function add_address_book($lang,$user_id,Request $request){
 dd($request);
}

Api运行良好

AddressBookRequest:

<?php namespace App'Http'Requests;
 use App'Http'Requests'Request;
class AddressBookRequest extends Request
{
/**
 * 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()
{
          return [
              'title' => 'required',
              'address' => 'required',
              'latitude' => 'required',
              'longitude' => 'required'
          ];
}
public function messages()
{
    return [
              'title.required' => trans('address_book.title_required'),
              'address.required' => trans('address_book.address_required'),
              'latitude.required' => trans('address_book.latitude_required'),
              'longitude.required' => trans('address_book.longitude_required'),
    ];
}

}

AddressBookController用例:

<?php namespace App'Http'Aggregate'Address_book'Controller'v1_0;
 use App'Http'Requests'AddressBookRequest;
 use Illuminate'Routing'Controller as BaseController;
 use EventHomes'Api'ApiController;
 use JWTAuth;
 class AddressBookController extends BaseController
 {

路线:

  Route::group(['namespace' => 'Aggregate'Address_book'Controller'v1_0', 'middleware' => 'jwt.auth', 'prefix' => 'api/v1.0/{lang}'], function () {
   Route::post('customer/{id}/address_book', 'AddressBookController@add_address_book');
  });

如何修复它以使用自定义请求?

如有任何帮助,将不胜感激

您应该将此行添加到控制器的顶部:

use App'Http'Requests'AddressBookRequest;

此外,请确保自定义请求类中的authorize()方法返回true:

public function authorize()
{
    return true;
}

我通过添加:来修复它

 use Illuminate'Foundation'Http'FormRequest;
 use EventHomes'Api'ApiController;
 abstract class Request extends FormRequest
 {
    use ApiController;
    public function response(array $errors)
    {
       foreach($errors as $key=>$error)
       {
         return $this->respondUnprocessable(1004,'validation',$errors[$key][0]);
       }
    }
}

requst.php