2016-08-17 54 views
0

我有几个模型,所有这些模型都有一个创建页面。模型创建时,我不执行任何验证。这是因为我随时允许用户返回并添加事物。对不同请求的模型验证

然而,在某些时候,我给用户

<a href="{{ route('projects.push', $project->id) }}" class="btn btn-info pull-right" data-token="{{ csrf_token() }}"> 
    Push 
</a> 

有问题的车型全部都涉及到项目模型提供了一个按钮。当他们点击按钮时,我将把模型发送到外部系统。但是,此时我需要验证发送的模型是否具有所有必需的数据。我知道关于模型的验证,但是这是他们创建的时候。是否有可能通过完全不同的行动来验证它们?

谢谢

回答

1

当然这是可能的。将您的规则和/或消息存储在模型中作为静态函数是明智的。一个例子是:

// Project model 
public static function rules() 
{ 
    return [ 
     'field1' => 'rules1..', 
     'field2' => 'rules2..' 
    ]; 
} 

然后你就可以在你的应用程序随时随地获取您的规则:

Validator::make($fields, Project::rules()); 

最后一件事。你说你在你的模型已经被创建时验证你的模型。我不知道是否将整个检索的模型变量,而不是$fields将工作。例如:

$project = Project::find($id); 

// Try this 
Validator::make($project, Model::rules()); 

// Otherwise try this 
Validator::make($project->attributes, Model::rules()); 

希望这有助于:)