【发布时间】:2014-11-05 12:01:04
【问题描述】:
我有一个名为 Validator 的类来处理我需要执行的所有验证,还有一个类使用我的错误规则和名称扩展我的类。
问题是,我正在尝试使用“Lang”来获取翻译后的消息,但它不起作用,我不知道为什么。
验证类:
<?php namespace App\Services\Validators;
abstract class Validator {
protected $data;
public $errors;
public static $rules;
public static $names;
public function __construct($data = null)
{
$this->data = $data ?: \Input::all();
}
public function passes()
{
$validation = \Validator::make($this->data, static::$rules, array(), static::$names);
if ($validation->passes()) return true;
$this->errors = $validation->messages();
return false;
}
}
我的类扩展了验证器:
use Lang;
class PrestadorSiteValidator extends Validator {
public static $rules = array(
'nome' => 'required',
'nome_fantasia' => 'required',
'email' => 'required|confirmed',
'identificador' => 'required',
'pais_id' => 'required',
'codigo_postal' => 'required',
'estado' => 'required',
'cidade' => 'required',
'rua' => 'required',
'bairro' => 'required',
);
public static $names = array(
'nome' => Lang::get('site.nome'),
'nome_fantasia' => 'Nome Fantasia',
'email' => 'Email',
'identificador' => 'CNPJ',
'pais_id' => 'País',
'codigo_postal' => 'Código Postal',
'estado' => 'Estado',
'cidade' => 'Cidade',
'rua' => 'Rua',
'bairro' => 'Bairro',
);
}
我得到的错误:
语法错误,意外'(',期待')'
当我尝试使用时:
'nome' => Lang::get('site.nome'),
有人可以帮帮我吗? :)
【问题讨论】:
-
我不熟悉 Laravel,所以也许有人可以建议它“Laravel 方式”。当前代码中的问题是您在定义属性时尝试使用函数调用。我建议创建一个在构造函数中调用的方法来填充 PrestadorSiteValidator::names (并从静态访问切换(对象是通过任何一种方式创建的,因此它不应该破坏太多东西)。
-
是的,我从名称中删除了“静态”,并将其初始化为空。我想我会像你说的那样进行更改以填充构造函数中的名称。谢谢:)
标签: php validation laravel lang