【问题标题】:Laravel 4 - Access Auth Class in Validation ClassLaravel 4 - 验证类中的访问 Auth 类
【发布时间】:2014-02-08 01:44:32
【问题描述】:

我想在我的 ValidatorService 类中访问 Auth 类。

namespace Services\Validators\User;

use \Services\Validators\Validator;

use \Illuminate\Support\Facades\Auth;

class Edit extends Validator {

    public static $rules = [
        'email' => 'required|unique:users,email,'.Auth::user()->id
    ];
}

我尝试使用 \Illuminate\Support\Facades\Auth 命名空间,但 laravel 抛出异常。

错误:syntax error, unexpected '.', expecting ']'

当我尝试使用 Auth::user()->id 时,Laravel 只会抛出异常。 如果我删除 Auth::user()->id 并添加一个数字,例如 1,它可以工作。

我也尝试实现Illuminate\Auth\UserInterface,但它不起作用。

如何在我的 ValidatorService 类中使用 Auth 类?

编辑:问题已解决 -> 向下滚动。

【问题讨论】:

  • 你想用登录的用户ID做什么?
  • 对于唯一规则(如您在上面看到的:-))
  • 为什么要投反对票?你疯了吗?

标签: php authentication namespaces laravel-4


【解决方案1】:

尝试包围'required|unique:users,email,'.Auth::user()->id 与( 和) 分开,使其看起来像这样:

public static $rules = [
    'email' => ('required|unique:users,email,' . Auth::user()->id)
];

【讨论】:

    【解决方案2】:

    解决方案:

    在设置变量时不能使用函数或变量 类。

    感谢 AndreasLutro http://laravel.io/irc

    所以我删除了类变量并添加了一个方法。 现在一切正常。

    代码:

    class Edit extends Validator{
    
        public static function rules(){
    
            return array(
    
                'email' => 'required|unique:users,email,'.Auth::user()->id
    
            );
        }
    }
    

    干杯,史蒂文。

    【讨论】:

      猜你喜欢
      • 2014-02-16
      • 2013-06-29
      • 1970-01-01
      • 2015-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 1970-01-01
      相关资源
      最近更新 更多