我有几个模型,所有模型都有一个创建页面。创建模型时,我不执行任何验证。这是因为我允许用户随时返回并添加内容。
但是,在某些时候,我向用户提供了一个按钮
<a href="{{ route('projects.push', $project->id) }}" class="btn btn-info pull-right" data-token="{{ csrf_token() }}">
Push
</a>
所讨论的所有模型都与项目模型有关。当他们点击按钮时,我将把模型发送到外部系统。但是,此时我需要验证 发送的模型具有所有必需的数据。我知道关于模型的验证,但这是在它们被创建时。是否有可能在完全不同的行动上验证它们?
由于
答案 0 :(得分: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());
希望这会有所帮助:)