2016-12-01 2 views
2

У меня есть Laravel версии 5.3 и я создал файл createArticleRequest.php под request папку, которая выглядит, как показано ниже:Запрос не найдена ошибка в контроллере Laravel

<?php namespace App\Http\Requests; 

use App\Http\Requests\Request; 

class CreateArticleRequest extends Request { 


    public function authorize() { 
     return true; 
    } 

    public function rules() { 
     return [ 
      'title' => 'required|min:3', 
      'body' => 'required', 
      'published_at' => 'required|date', 
     ] 
    } 


} 

?> 

В Мой контроллер статьи у меня есть следующий метод:

public function store(CreateArticleRequest $request) { 
     // $input = Request::all(); 
     Article::create($request->all()); 
     return redirect('articles'); 
} 

Но когда я заполнить форму на мой взгляд, и нажмите на кнопку отправить я получаю сообщение об ошибке, как так:

ReflectionException in Route.php line 286: 
Class App\Http\Controllers\CreateArticleRequest does not exist 

Почему я получаю эту ошибку ??

Я верю, что мои статьи Контроллер и мой createArticlesRequest находятся в том же namespace, так почему я могу получить эту ошибку?

+0

Контроллер ищет CreateArticlesRequent в пространстве имен App \ Http \ Controllers, поэтому полностью ссылайтесь на него как на «хранилище общих функций (приложение \ Http \ Requests \ CreateArticleRequest $ request)" – markdwhite

ответ

2

Вы должны использовать PHP»use ключевое слово в верхней части файла PHP, так что PHP может найти CreateArticleRequest пакетов класса в правильном пространстве имен, как это:

namespace App\Http\Controllers; 

use App\Http\Requests\CreateArticleRequest; 

class Controller { 

    public function store(CreateArticleRequest $request) { 
      // $input = Request::all(); 
      Article::create($request->all()); 
      return redirect('articles'); 
    } 

} 

Надеется, что это помогает!

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