2016-10-08 7 views
1

Я использую Laravel запрос пользовательской формы с помощью команды php artisan make:request AddressBookRequest
И использовать этот запрос в мой контроллер как:
маршрут не найден в запросе пользовательских форм

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

И когда я бегу апи маршрут 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 usecases:

<?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', '[email protected]_address_book'); 
    }); 

Как я могу исправить это, чтобы использовать пользовательский запрос?

Любая помощь будет оценена

+0

Добавить это в верхней части файла контроллера ** Использование App \ Http \ Просит \ AddressBookRequest; ** – Anish

+0

я добавил, но он по-прежнему не работает – amirali

+0

Какую ошибку вы получаете сейчас? – Anish

ответ

1

Вы должны добавить эту строку в верхней части контроллера:

use App\Http\Requests\AddressBookRequest; 

Кроме того, убедитесь, что authorize() метод внутри пользовательского запроса класса возвращает true:

public function authorize() 
{ 
    return true; 
} 
+0

Я добавил, но он все еще не работает – amirali

+0

Какая ошибка у вас есть? Укажите маршрут, который вы используете. –

+0

та же ошибка, маршрут: '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 '); }); ' – amirali

0

Я исправлю это, добавив:

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

 Смежные вопросы

  • Нет связанных вопросов^_^