私はLaravel 5.3を使用しています。私の最初のLaravelプロジェクト/学習経験 私のブレードファイルでは、以下のスニペットを使用して、PUTまたはPOSTリクエスト後にフィールドの下のエラーを表示します。
この場合、データベースのフィールドは、私は多くの分野を持っているので、私はすべてのフィールドにrepeatingsにこのブロックを維持しているのfirstName
今 @if ($errors->has('firstName'))
<span class="help-block">
<strong>{{ $errors->first('firstName') }}</strong>
</span>
@endif
と呼ばれています。私は(刃部を拡張する)ブレードテンプレートにLaravelのドキュメントを見て、私はAppServiceProviderクラスで次の操作を行うことができると思った(AppServiceProviderの.php)
public function boot()
{
//
Blade::directive('showIfError', function($fieldName) {
if ($errors->has('$fieldName')) {
echo "<span class='help-block'>
<strong> $errors->first('$fieldName') </strong>
</span>";
}
});
}
、その後
@showIfError(「firstNameの」を使用します)
しかし、運...私はエラー「未定義の変数を:エラー」を取得Laravelエラーコレクションは、このビューのファイルにアクセスできないように
が見えます。
ありがとうございました。ありがとう。
達成したいことを含めることができますか? – Abrar
フォームの各フィールドのif(errors ...)ブロックをコピー&ペーストしたくありません。代わりに、@showIfError( 'fieldName')のようなマクロ/ブレードテンプレートが必要で、最終出力は上記のスパンブロックのようにレンダリングされます。 –
私はビューのキャッシュが出力を妨げていることがわかります。私がストレージ(キャッシュ)フォルダ内のすべてのファイルを削除すると、セッション( 'エラー')を使って動作させることができますが、一度しか動作しません!同じエラーでフォームを再度送信しても、出力は生成されません。このため、私は答えがうまくいくかどうか完全にテストすることができません:-( さらに、Blade :: directive関数は2つの引数を取っていません。 –