我试图在我的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'
错误消息。我不确定我在忽视什么。
答案 0 :(得分:1)
当您在没有任何$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',
]);