laravel验证5.1与经过身份验证的用户

时间:2016-08-18 01:59:00

标签: php laravel-5.1

我试图在我的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'错误消息。我不确定我在忽视什么。

1 个答案:

答案 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',
    ]);