FatalErrorException in RegistersUsers.php 第 32 行:在非对象上调用成员函数 failed() 在 Laravel 5 中
请帮助解决这个问题,我很感激谁能解决这个错误。RegistersUsers.php中的代码是
<?php
namespace IlluminateFoundationAuth;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
trait RegistersUsers
{
use RedirectsUsers;
/**
* Show the application registration form.
*
* @return IlluminateHttpResponse
*/
public function getRegister()
{
return view('auth.register');
}
/**
* Handle a registration request for the application.
*
* @param IlluminateHttpRequest $request
* @return IlluminateHttpResponse
*/
public function postRegister(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
Auth::login($this->create($request->all()));
return redirect($this->redirectPath());
}
}
控制器代码,控制器名称为身份验证控制器.php
<?php namespace AppHttpControllersAuth;
use AppHttpControllersController;
use IlluminateFoundationAuthAuthenticatesAndRegistersUsers;
class AuthController extends Controller {
/*
|--------------------------------------------------------------------------
| Registration & Login Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users, as well as the
| authentication of existing users. By default, this controller uses
| a simple trait to add these behaviors. Why don't you explore it?
|
*/
use AuthenticatesAndRegistersUsers;
public function validator(array $data){}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return IlluminateContractsAuthAuthenticatable
*/
public function create(array $data){}
}
在终端中使用此命令创建请求
php artisan make:request Name_of_request
在请求文件中,在 rules() 方法下创建规则。例如
public function rules()
{
return [
'title' => 'required|min:3',
'body' => 'required',
'tag_list' => 'required',
'image' => 'required|mimes:jpeg,jpg,png,gif'
];
}
创建规则后,在控制器上添加类,如下所示。
public function store(ArticleRequest $request){
//Your codes
}
ArticleRequest 是请求类,$request是 post 对象。
在您的身份验证控制器中需要包含"使用验证器";
此外,验证和创建方法为空。这些方法应如下所示:
public function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:8',
]);
}
public function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}