2017-10-25 11 views
0

フォームの投稿時に、Laravelフォーム(Laravel Collective HTMLパッケージを使用して構築)がユーザーに表示された時刻を判断したいと思います。フォームがLaravelでレンダリングされたときの確認方法

私は、提出時にさまざまな理由でこの日をチェックする必要があります。

私は大きな既存のプロジェクトを持っており、この日付を取得する最良の方法を検討しています。私はCSRFミドルウェアを読んでいました(このトークンは既にすべてのフォームに含まれています)ので、おそらく別のミドルウェアでそれを抽出できるかどうかを確認するためにform_generated_dateのようなものをリクエストに追加しています。

可能であれば、少しストレッチのようです。だから私はすべてのフォームにカスタムフィールドを追加することに目を向けています。

Form::open()メソッドがCSRFトークンを追加するのと同じように、これをすべてのフォームに含めることができます。自分のマクロを追加する方法については知りましたが、このメソッドを拡張する方法については説明しませんでした。

誰でも、CSRFトークンから日付を取得できるかどうか知っていますか?または、Form::open()メソッドをどのように拡張するか(またはドキュメンテーションがどこにあるか)。

答えて

0

Form::open()の方法は、FormBuilder.phpファイル(https://github.com/LaravelCollective/html/blob/2f6dc39ab3655724a615fe8a652d8b7f04fc9ac6/src/FormBuilder.php)のように見えます。

このファイルには、あなたが、これはすべてのアップデートで上書きされることを念頭に、openメソッドに新しい隠されたフォームフィールドを追加することができる必要があり/vendor/laravelcollective/html/src/FormBuilder.php

で見つけることができます。本当にお勧めはしませんが、あなたが探しているものを達成するでしょう。

+0

あなたの考えに感謝しますが、ベンダーパッケージを編集することは私のためではありません:)私は、メソッドをオーバーライドするためにFormBuilderをCustomFormBuilderに拡張することを検討していました。しかし、Macrosのように、この目的のためにフォームビルダーが故意に公開したメソッドがあることを期待していました。私は、アプリケーションのすべての部分で、新しいCustomFormBuilderクラスに依存関係が正しく解決されることを確認する必要があります。 – joevallender

+0

私は同意します:)トークンの生成から日時を取得する方法がないように見えるので、あなたは毎回隠しフィールドが追加されることを確認していますフォームを開いて行く方法です。特定のテストがあることを確認してください。 – kerrin

関連する問題