私はこの入力フォームを持っています:(Laravelでブレードテンプレートエンジンを使用していますが、htmlはこれから理解しやすく、最終的には些細なものでなければなりません)
{{ Form::text('amount[]', Input::old('amount')) }}
<?php echo Form::select('unit[]',
array(
'whole' => _('whole'),
'ml' => _('milliliter'),
'l' => _('liter'),
'dl' => _('deciliter'),
'mg' => _('milligram'),
'g' => _('gram'),
'kg' => _('kilogram'),
'tsp' => _('teaspoon'),
'tbs' => _('tablespoon'),
)) ?>
{{ Form::text('ingredient[]', Input::old('ingredient')) }}
これをデータベースにフォーマットして、次のような文字列で返そうとしています。
<li><span>1</span> liter red wine</li>
私はそれをより単純な形式にし、柔軟性のためにユーザーに入力を強制する単位測定を排除することを検討していますが、それでもデータベース用にすべてを1つのテーブルにまとめる必要があります。スパンタグはjQueryで使用され、動的に数を増やすために必要です。私はこれにかなりの数日間オンとオフを繰り返してきましたが、これを行う方法を解読することはできません。
これが私のフォーマットロジックです:
$amount = Input::get('amount[]');
$unit = Input::get('unit[]');
$ingredient = Input::get('ingredient[]');
for ( $i = 0, $c = count(Input::get('ingredient[]')); $i < $c; $i++ )
{
$ingredients .= '<li><span>'.$amount[$i].'</span>'.$unit[$i].' '.$ingredient[$i].'</li>';
}
そして私はそれを使用して送信します
$new = Recipe::create(array(
'title' => Input::get('title'),
'curiousity' => Input::get('curiousity'),
'ingredients' => $ingredients,
'steps' => Input::get('recipe')
));
さまざまな方法を試しましたが、$ components配列が定義されていない、変数で[]を使用できないなどのエラーが発生します。変数を「$ingredients='';」として定義してみました 変数ですが、空の文字列が生成されました。私の問題は論理にあるに違いありません。