我在 Laravel 5.3 中创建了一个“request”类,代码如下:
但是当我在我的控制器中使用它时,我收到以下信息:
当我移除规则,使其看起来像这样:
突然就行了?!?
--更新--
看起来验证器在我的web.php中查找,但我没有在那里设置路由(这就是为令我收到异常:
--更新-- 我当前的路由:
如果在新的 Laravel 5.3 安装中尝试此操作,我会收到错误消息!
也许与以下内容有关:
在 Laravel 5.3 中 UserStoreRequest 继承自 FormRequest(使用 Illuminate\Foundation\Http\FormRequest;)
而在 Laravel 5.2 中 UserStoreRequest 继承自 Request(使用 App\Http\Requests\Request;)
--编辑--
API.PHP
存储方法
<?php
namespace App\Http\Requests\User;
use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest
{
/**
* 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 [
'name' => 'required|max:25|min:2'
];
}
}
但是当我在我的控制器中使用它时,我收到以下信息:
NotFoundHttpException in RouteCollection.php line 161:
当我移除规则,使其看起来像这样:
public function rules()
{
return [
];
}
突然就行了?!?
--更新--
看起来验证器在我的web.php中查找,但我没有在那里设置路由(这就是为令我收到异常:
NotFoundHttpException in RouteCollection.php line 161:
)。我在5.2中没有遇到这个问题。我该怎么办?--更新-- 我当前的路由:
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+-----------------------------------------------+--------------+---------------------------------------------------+------------+
| | POST | api/login | | App\Http\Controllers\Auth\AuthController@login | api |
| | GET|HEAD | api/register/{user}/verify/{ConformationCode} | | App\Http\Controllers\Auth\AdminController@confirm | api |
| | GET|HEAD | api/user | user.index | App\Http\Controllers\User\UserController@index | api,active |
| | POST | api/user | user.store | App\Http\Controllers\User\UserController@store | api,active |
| | GET|HEAD | api/user/create | user.create | App\Http\Controllers\User\UserController@create | api,active |
| | GET|HEAD | api/user/{user} | user.show | App\Http\Controllers\User\UserController@show | api,active |
| | PUT|PATCH | api/user/{user} | user.update | App\Http\Controllers\User\UserController@update | api,active |
| | DELETE | api/user/{user} | user.destroy | App\Http\Controllers\User\UserController@destroy | api,active |
| | GET|HEAD | api/user/{user}/edit | user.edit | App\Http\Controllers\User\UserController@edit | api,active
如果在新的 Laravel 5.3 安装中尝试此操作,我会收到错误消息!
也许与以下内容有关:
在 Laravel 5.3 中 UserStoreRequest 继承自 FormRequest(使用 Illuminate\Foundation\Http\FormRequest;)
而在 Laravel 5.2 中 UserStoreRequest 继承自 Request(使用 App\Http\Requests\Request;)
--编辑--
API.PHP
<?php
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::post('/login', 'Auth\AuthController@login');
Route::get('/register/{user}/verify/{ConformationCode}', 'Auth\AdminController@confirm');
Route::put('/test', 'User\UserController@test');
Route::group(['middleware' => ['active']], function () {
Route::resource('user', 'User\UserController');
Route::resource('corporation', 'Corporation\CorporationController');
Route::resource('forum', 'Forum\ForumController');
Route::resource('topic', 'Topic\TopicController');
});
存储方法
public function store(StoreRequest $request)
{
if($this->authorize($this->user))
{
$user = $this->userInfo->store($request);
event(new UserRegistered($user));
return response()->json(['success' => 'gebruiker succesvol aangemaakt. Welkom email verzonden.']);
}
return response()->json(['error' => 'niet geautoriseerd'], 401);
}
routes/api.php
和UserController
的store
方法。 - alepeino