私はLaravelで新しく、私はそれを学ぶための小さなプロジェクトを開始します。このため私は問題があり、これを解決する良い方法を探します。Laravelのベストプラクティス:事前定義されたフィールドによる検証
私はドキュメントのような検証メソッドを書いて、この関数でフォームを検証しました。
public static function validate($object, $request) {
$object->validate($request, [
'type' => 'in:foo,bar',
'name' => 'required',
'description' => 'required',
]);
}
$obj = new Job();
$obj->validate($this, $request);
[...]
$obj->save();
これはうまくいきますが、一部のモデルには必須のフィールドがありますが、ほとんどの場合はコントローラで事前に定義されています。たとえば、現在のユーザーのuser_idフィールドを持つエントリを作成するとします。
$obj = new Obj();
$obj->user_id = Auth::user()->id;
$obj->validate($this, $request);
[...]
$obj->save();
user_idは$ requestオブジェクトの一部ではないため、検証されません。
したがって、検証でrequired
を削除するか、2つの異なる検証関数を定義することができます。他の可能性もありますか? $request
にフィールドを追加することは可能でしょうか?最高の可能性は何ですか?
シナリオで本当にクールなアイデア。私はこれを使用します!ありがとう! – mgluesenkamp