2016-08-17 4 views
0

Ich habe mehrere Modelle, von denen alle eine create Seite haben. Wenn ein Modell erstellt wird, führe ich keine Validierung durch. Dies liegt daran, dass ich dem Benutzer jederzeit erlauben kann, zurückzugehen und etwas hinzuzufügen.Modell Validierung auf andere Anfrage

jedoch an einem gewissen Punkt stelle ich eine Schaltfläche, um den Benutzer

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

Alle Modelle in Frage ist mit dem Projektmodell verwendet. Wenn sie auf den Druckknopf klicken, werde ich die Modelle an ein externes System senden. An dieser Stelle muss ich jedoch bestätigen, dass die Modelle, die gesendet werden, alle erforderlichen Daten haben. Ich weiß über die Validierung eines Modells, aber das ist, wenn sie erstellt werden. Ist es möglich, sie auf eine völlig andere Aktion zu validieren?

Dank

Antwort

1

Natürlich ist es möglich. Es wäre klug, Ihre Regeln und/oder Nachrichten in Ihrem Modell als statische Funktion zu speichern. Ein Beispiel wäre:

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

Dann Sie Ihre Regeln überall in der Anwendung abrufen können:

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

Eine letzte Sache. Sie haben angegeben, dass Sie Ihr Modell validieren, wenn es bereits erstellt wurde. Ich weiß nicht, ob die gesamte abgerufene Modellvariable anstelle von $fields funktioniert. Beispiel:

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

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

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

this helps :)

Verwandte Themen