我正在發送一個處理輸入數據並更新記錄的PUT請求,但我得到了上述響應。但是,問題似乎並不是路線,因爲如果我在$user = User::whereId($id)->firstOrFail();
行之後執行dd($user)
,我會正確返回對象。獲取Symfony Component HttpKernel Exception MethodNotAllowedHttpException
然而,當它來驗證它時,它會拋出這個錯誤。
# routes
Route::resource('users', 'UsersController', ['only' => ['index', 'show', 'update']]);
# api call
PUT /users/2
# controller
public function update($id)
{
$user = User::whereId($id)->firstOrFail();
$input = Input::all();
$this->userForm->validate($input);
$user->fill($input)->save();
return $user->toJson();
}
# userForm class
<?php namespace Olp\Forms;
use Laracasts\Validation\FormValidator;
class UserForm extends FormValidator {
protected $rules = [
'email' => 'required|email|unique:users',
'password' => 'required',
'password_confirmation' => 'required|same:password',
'firstname' => 'required',
'lastname' => 'required',
'schoolname' => 'required',
'address1' => 'required',
'address2' => 'required',
'postcode' => 'required',
'city' => 'required'
];
}
,並在我的UserController的:
use Olp\Forms\UserForm;
class UsersController extends \BaseController {
function __construct(UserForm $userForm)
{
$this->userForm = $userForm;
}
順便說一句,你只需要:'$ user = User :: findOrFail($ id);' – 2014-09-25 14:05:55
所以這裏發生了什麼:'$ this-> userForm-> validate($ input);'?你可以包含模型函數的代碼嗎? – 2014-09-25 14:09:03
@hebron感謝您的回覆 - 我已經添加了該部分的相關代碼。 – babbaggeii 2014-09-25 15:33:05