【发布时间】:2014-11-20 07:51:47
【问题描述】:
我正在发送一个处理输入数据和更新记录的 PUT 请求,但我得到了上述响应。然而,问题似乎不是路线,因为如果我在$user = User::whereId($id)->firstOrFail(); 行之后执行dd($user),我会正确返回对象。
然而,当需要验证它时,它会抛出这个错误。
# 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'
];
}
在我的用户控制器中:
use Olp\Forms\UserForm;
class UsersController extends \BaseController {
function __construct(UserForm $userForm)
{
$this->userForm = $userForm;
}
【问题讨论】:
-
顺便说一句,你只需要:
$user = User::findOrFail($id); -
那么这里发生了什么:
$this->userForm->validate($input);?您可以为此包含模型函数的代码吗? -
@hebron 感谢您的回复 - 我已经为该部分添加了相关代码。