2016-05-17 8 views
1

私は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を使用していますが、これはすべてのフレームワークに関する全体的な質問かもしれません。

+0

のための配列を使用して簡単に、すべての果物の要素を解析しますこれはかなりまともなサーバー上で実行します。私はこれが最も論理的なアプローチであると感じていないだけです。フォームの中でforeachするのではなく、POSTの値をコントローラに戻して個別にコードを適用してみてください。私がそれを示した方法は、唯一の方法かもしれません、それは唯一の方法ではないかもしれません。そして、私は最良の方法を探しています(そして、それはこれかもしれない、それが聞こえてうれしいです)。 – Markinson

+0

Laravelの雄弁なモデルを使っていますか?私はfillableアトリビュートがコントローラーでそれをうまく処理できると思っていたでしょう。フォーム入力/ $応答はどのように見えるのですか? – brianlmerritt

+0

@brianlmerritt私は確かに雄弁なモデルを使用しています。問題は、すべてのユーザーが自分の種類の果物を追加することができるため、誰かがパイナップルなどを追加する可能性があるため、fillable属性はここでは機能しません。ここでは大量割り当てはできません。 – Markinson

答えて

0

あなたは input name='fruit[]' のように、フォームに配列を添付することができ、PHPは、私は以来、私はスピードについて本当に心配していないよ@RyanVincentあなた

関連する問題