【问题标题】:Variables in Laravel ValidationLaravel 验证中的变量
【发布时间】:2014-06-06 22:56:27
【问题描述】:

我想知道是否可以在 laravel 框架中将变量添加到验证规则中。

例如:

$size= 2000;
public static $rules = array(
        'filename'=>'required', 
        'file' => 'max:' . $this->size
    );

但这有效:

public static $rules = array(
        'filename'=>'required', 
        'file' => 'max:2000'
    );

但这似乎并没有做到这一点。

有人对此有解决方案吗?

【问题讨论】:

  • 什么不起作用? Auth::user()->role->filesize 返回什么,你现在得到什么?
  • 将我的帖子编辑为更清晰的示例
  • 这适用于'file' => 'max:2000' 吗?
  • 你遇到什么错误?
  • file 是你的file 输入的名字吗?

标签: php variables laravel rules


【解决方案1】:

根据您的 sn-p,您在声明 rules 属性时尝试设置规则。如果您将规则设置为对象属性,则应在 __construct() 中进行,因为在声明变量时无法这样做

<?php
class foo{
    public static $var=[
        'asdf'=>1234,
        'qwerty'=>bar::returnVar()
    ];
}
class bar{
    public static function returnVar(){
        return 5678;
    }

}
print_r(foo::$var);

上面的sn-p抛出错误Parse error: syntax error, unexpected '(', expecting ']' in C:\scripts\test.php on line 5

因此,最好将其设置在您的 __construct() 中或在您验证之前。

【讨论】:

  • 我知道,答案仍然适用。按照我给出的建议来解决问题。
【解决方案2】:

遇到了同样的问题。 当谈到 laravel 时,我是一个新手,但我所做的是在表单上添加一个隐藏字段,其中包含我想要使用的值。然后我只需要在验证器中添加这样的字段。

{{ Form::hidden('max', 2000 }}

...

public static $rules = array(
    'filename'=>'required', 
    'file' => 'max:max'
);

【讨论】:

    猜你喜欢
    • 2018-10-14
    • 2019-02-13
    • 2016-04-02
    • 2018-08-29
    • 2019-07-12
    • 2018-01-27
    • 2015-12-29
    • 2019-03-01
    • 2017-03-20
    相关资源
    最近更新 更多