【发布时间】:2017-06-03 18:23:49
【问题描述】:
我正在尝试探索 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
{
}
}
问题:我在控制器顶部添加了所有需要的命名空间,但 Laravel 仍然找不到我的 ContactsRequest 类,这怎么可能?
更新:我刚刚记得我用php artisan app:name Demo 更改了我的应用程序的全局名称,之后一些文件丢失了,所以我执行php composer dump-autoload 并且ContactsController 找到了我的ContactsRequest,但是现在我有另一个例外说找不到父类Request ...
【问题讨论】:
-
您是否在 ContactsRequest 中正确声明了命名空间?把一个类放到文件夹里是不够的,可能是“namespace Demo\Http\Requests;”文件顶部缺少?
-
@jerdzej.kurylo :是的,我需要顶部的命名空间
namespace Demo\Http\Requests,此外,我使用php artisan make:request ContactsRequest生成了这个请求类,所以我相信它不应该包含错误