私は1対多の関係を持っています。それはone user may have one or more fruits
と言うことができます。ユーザーに3つの商品があるとします。最善のアプローチforeach内部フォーム
- アップル
- バナナ
- ブドウ
私は、ユーザーが製品のログを作りたいです。
<label for="description">Give a description of the log</label>
<input type="text" name="description" id="description"/>
@forelse($user->fruits as $fruit)
<label for="{{$fruit->name}}">give condition of all {{$fruit->name}}</label>
<input type="text" id="{{$fruit->name}}" name="{{$fruit->name}}" />
@empty
No fruits available!
@endforelse
<button type="submit">
これは私が保存され、また、ユーザーのりんご、バナナとブドウのステータスの更新を行うことになるログを記述することができ、フォームを与えるだろう:フォームはこのようになりますと言うことができます。
これは単なる例であることに注意してください。コントローラで処理するのが難しいように思えます(正しくは$_POST
の値を得られますか?)、処理能力が低く、MVCの原則に反して動作します。 one to many
の値をすべて使用し、同じフォームでhtml/phpを使用してすべて使いこなす方が良いですか?私はLaravelを使用していますが、これはすべてのフレームワークに関する全体的な質問かもしれません。
のための配列を使用して簡単に、すべての果物の要素を解析しますこれはかなりまともなサーバー上で実行します。私はこれが最も論理的なアプローチであると感じていないだけです。フォームの中でforeachするのではなく、POSTの値をコントローラに戻して個別にコードを適用してみてください。私がそれを示した方法は、唯一の方法かもしれません、それは唯一の方法ではないかもしれません。そして、私は最良の方法を探しています(そして、それはこれかもしれない、それが聞こえてうれしいです)。 – Markinson
Laravelの雄弁なモデルを使っていますか?私はfillableアトリビュートがコントローラーでそれをうまく処理できると思っていたでしょう。フォーム入力/ $応答はどのように見えるのですか? – brianlmerritt
@brianlmerritt私は確かに雄弁なモデルを使用しています。問題は、すべてのユーザーが自分の種類の果物を追加することができるため、誰かがパイナップルなどを追加する可能性があるため、fillable属性はここでは機能しません。ここでは大量割り当てはできません。 – Markinson