如何在laravel 5.1

时间:2015-12-02 08:55:00

标签: php laravel-5.1

我必须在我的页面中显示/编辑表单。我从表中获取所有行并以表格格式显示,这是可编辑的。 一旦编辑了表格。我希望所有这些行都使用控制器在数据库中更新,但我不知道如何通过laravel 5.1中的请求对象获取所有表单行。

$records = $request->all();

作为请求对象仅提供表单的最后一行。 有什么建议吗?

@section('content')
{!! Form::open(array('url' => 'madcat/update', 'method' => 'put', 'class'=>'form-horizontal')) !!}
<input type="hidden" name="_token" value="{!! csrf_token() !!}">
    <div class="form-group">                
        <table class=" table table-condensed">
        <thead> 
	        <tr> 
		        <th>#</th>
		        <th>Field</th> 
		        <th>Max</th>
	            <th>Min</th>
	        </tr> 
        </thead>
        @foreach($records as $key => $value)
          <tr>
          	<td>{!!Form::text('id',$value->id,['readonly'])!!}</td>
            <td>{!!Form::checkbox('Field_check'.$value->id)!!}{!! Form::text('Field',$value->Field,['readonly'])!!}</td>
            <td>{!!Form::checkbox('Max_check'.$value->id)!!}{!! Form::text('Max',$value->Max,['readonly'],array('size'=>'4'))!!}</td>
            <td>{!!Form::checkbox('Min_check'.$value->id)!!}{!!Form::text('Min', $value->Min,['readonly'],array('size'=>'4'))!!}</td>
          </tr>
        @endforeach
        </table>
        <div class="col-md-6 col-md-offset-11">
        {!!Form::submit('Save', array('class'=>'btn btn-primary'))!!}
        
		</div>
    </div>
    {!!Form::close()!!}
@endsection

这是HTML的代码。在这里,我将检查所有rows元素前面的复选框,以便我只想更新另一个表中的那些行。

2 个答案:

答案 0 :(得分:1)

问题是,所有复选框在循环中具有相同的名称。 你需要这样的东西

{!!Form::checkbox('Field_check' . $key )!!}
{!!Form::checkbox('Max_check' . $key)!!}
{!!Form::checkbox('Min_check' . $key)!!}

否则PHP无法告诉您编辑哪一行。

答案 1 :(得分:0)

我在这里得到了答案。实际上错误是所有表单元素的命名

-- Sample Data
declare @data table (Name varchar(10), Val1 int, Val2 int, Val3 int, Val4 int, Val5 int, Val6 int)
insert @data values 
    ('John', 1000, 2000, 3000, 4000, 5000, 6000),
    ('Mary', 1, 2, 3, 4, 5, 6),
    ('Tony66', 1, 2, 3, 4, 5, 66),
    ('Tony55', 1, 2, 3, 4, 55, 6),
    ('Tony44', 1, 2, 3, 44, 5, 6),
    ('Tony33', 1, 2, 33, 4, 5, 6),
    ('Tony22', 1, 22, 3, 4, 5, 6),
    ('Tony11', 11, 2, 3, 4, 5, 6)

SELECT name,
       (SELECT MAX(value)
        FROM (VALUES (Val1),(Val2), (Val3), (Val4), (Val5), (Val6)) AS AllValues(value)) AS 'MaxValue'
FROM @data

对所有表单元素的名称进行了更改,并在请求对象中获取了所有值。