2016-12-11 9 views
0

私は、INSERTとUPDATEの両方で再利用できるフォームパーシャルを作成しようとしています。私は、チェックボックスに値を設定することに固執しています。ここに私が持っているもの:ラベラーブレードのチェックボックスへの挿入

<input type="checkbox" id="Paid" value="1" name="Paid" 
{{ (old('Paid') ?? $invoice->Paid ?? false) ? 'checked' : '' }} /> 

新しいレコードと更新の両方で初めてフォームを読み込むときに機能します。問題は、ユーザーがレコードを編集するときにボックスのチェックを外したが、フォーム上の他のものが検証に失敗したときです。検証に失敗した後にフォームが読み込まれると、チェックされていないボックスが再度チェックされます。 old()がfalseを返すため、$ invoice-> Paidのデータベース値がロードされます。

+0

** **作成と更新**の両方に**チェックボックス**を使用すると、返されるデータが**古い入力またはデータベース値**からのものである場合、**保証はありません**。この作業を行うには、単にJSを使ってonclickイベントを適用し、誰かがそれをチェック/チェック解除する(onchangeイベント)たびに非表示フィールドの値を変更することができます。あなたは後で、その隠されたフィールドの値に古いの存在を検証することができます:)完全に私の意見..誰かがよく知っている場合...先に進んでください...答え:) – prateekkathal

答えて

0

私はこの作業を数時間試しました。最後に、私はあきらめたとLaravelCollective HTMLパッケージをインストール:このパッケージに結合

https://laravelcollective.com/docs/5.3/html

フォームモデルは、上記のシナリオのチェックボックスを取り込むために働きます。

1

あなたはそうのようにこれを行うことができるようになります。

{{ old('Paid', $invoice->Paid) ? 'checked="checked"' : '' }} 

限り、古い値が本当だった、または$invoiceモデルのPaidプロパティがfalse/nullでないとして、それがチェックを適用しますそれ以外の場合はそうではありません。