laravel 使用经过身份验证的用户进行验证 5.1
laravel validation 5.1 with authenticated user
我正尝试在我的 validator
方法中对我的注册表单进行一些验证。我将 $user->id
连接到我的 name
和 email
数组键,这样用户就无法使用已使用的相同名称和电子邮件地址进行注册。
下面是我的AuthController
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
public function __construct()
{
$this->middleware('guest', ['except' => 'getLogout']);
}
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|regex:/^[a-zA-Z]+$/u|max:255|unique:users,name,'.$user->id,
'email' => 'required|email|max:255|unique:users'.$user->id,
'password' => 'required|confirmed|min:6',
]);
}
}
每次我点击提交我都会收到一条 Undefined variable: user
错误消息所以我尝试在我的验证器方法上方添加 $user = Auth::user();
像这样
// retrieve authenticated user
$user = Auth::user();
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|regex:/^[a-zA-Z]+$/u|max:255|unique:users,name,'.$user->id,
'email' => 'required|email|max:255|unique:users'.$user->id,
'password' => 'required|confirmed|min:6',
]);
}
但我收到 syntax error, unexpected '$user'
错误消息。我不确定我忽略了什么。
当您创建新用户时,您没有任何 $user
对象,当然您会收到 Undefined variable: user
错误消息。
您的验证仅适用于更新用户个人资料。
您的代码中存在语法错误。这是正确的:
return Validator::make($data, [
'name' => 'required|regex:/^[a-zA-Z]+$/u|max:255|unique:users,name',
'email' => 'required|email|max:255|unique:users,email',
'password' => 'required|confirmed|min:6',
]);
我正尝试在我的 validator
方法中对我的注册表单进行一些验证。我将 $user->id
连接到我的 name
和 email
数组键,这样用户就无法使用已使用的相同名称和电子邮件地址进行注册。
下面是我的AuthController
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
public function __construct()
{
$this->middleware('guest', ['except' => 'getLogout']);
}
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|regex:/^[a-zA-Z]+$/u|max:255|unique:users,name,'.$user->id,
'email' => 'required|email|max:255|unique:users'.$user->id,
'password' => 'required|confirmed|min:6',
]);
}
}
每次我点击提交我都会收到一条 Undefined variable: user
错误消息所以我尝试在我的验证器方法上方添加 $user = Auth::user();
像这样
// retrieve authenticated user
$user = Auth::user();
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|regex:/^[a-zA-Z]+$/u|max:255|unique:users,name,'.$user->id,
'email' => 'required|email|max:255|unique:users'.$user->id,
'password' => 'required|confirmed|min:6',
]);
}
但我收到 syntax error, unexpected '$user'
错误消息。我不确定我忽略了什么。
当您创建新用户时,您没有任何 $user
对象,当然您会收到 Undefined variable: user
错误消息。
您的验证仅适用于更新用户个人资料。
您的代码中存在语法错误。这是正确的:
return Validator::make($data, [
'name' => 'required|regex:/^[a-zA-Z]+$/u|max:255|unique:users,name',
'email' => 'required|email|max:255|unique:users,email',
'password' => 'required|confirmed|min:6',
]);