找不到自定义"请求"类

Ano*_*ous 2 php laravel laravel-5

我试图在Laravel 5中探索内置的表单验证,如下所述:

https://mattstauffer.co/blog/laravel-5.0-form-requests#2.-create-your-controller

但我总是得到一个错误,说找不到"MyRequest"类.

// My route
Route::post('/contacts', ['as' => 'contacts-store', 'uses' => 'ContactsController@store']);

// My custom request
namespace Demo\Http\Requests;
use Demo\Http\Requests\Request;

class ContactsRequest extends Request {} // now Laravel cannot find this class

// My controller
namespace Demo\Http\Controllers;

use Illuminate\Http\Request;

use Demo\Http\Requests; // namespace where I put my request to
use Demo\Http\Controllers\Controller;
use Demo\Http\Requests\ContactsRequest; // direct reference to the class

class ContactsController extends Controller
{
    public function store(ContactsRequest $request)  // this line throws exception
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:我在控制器的顶部添加了所有需要的命名空间,但是Laravel仍然无法找到我的ContactsRequest类,这怎么可能?

更新:我刚刚记得我改变了我的应用程序的全局名称php artisan app:name Demo,在此之后一些文件丢失了,所以我执行了php composer dump-autoload,ContactsController找到了我的ContactsRequest,但是现在我有另一个例子说Request没有找到父类...

Chr*_*ers 12

对于那些在按照上述答案后仍然有问题的人,我发现了可能发生此错误的另一个可能原因.该错误是错误的,对我来说有一个解析错误:我的请求中的语法错误(规则数组中缺少逗号).所以仔细检查你的文件是否错误!

我在调用我的头发并写下之后发现了它:new MyCustomRequest()在我store()的控制器方法中.


Kha*_*ukh 5

如果通过以下命令正确生成了请求

php artisan make:request ContactsRequest 
Run Code Online (Sandbox Code Playgroud)

仔细检查下是否有一个名为ContactsRequest.php的文件

app/Http/Requests
Run Code Online (Sandbox Code Playgroud)

夹。如果在该文件夹下有一个文件夹,则可以通过以下方式使用自定义的ContactsRequest:

public function somefunction(Requests\ContactsRequest $request)
Run Code Online (Sandbox Code Playgroud)

同样,在ContactsRequest文件中,您应该将数组值设置为true而不是false。我忘记了该功能的名称,并且无法验证,因为我正在用手机写此答案。