Laravel:表格更新表格中的多行?

时间:2015-01-24 20:27:34

标签: php mysql forms laravel laravel-4

据我所知,我可以在我的表单上创建一个绑定,以便能够访问和更新表格中的记录,如下所示:

@extends('layouts.interior')

@section('content')

{{ Form::model($nav) }}
<ul id="sortable">
    <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>
        {{ Form::text('url') }}
    </li>
    <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>
        {{ Form::text('url_name') }}
    </li>       
</ul>           
{{ Form::close() }}

@stop

但这是通过从路径传递单个id来完成的。

Route::get('nav/edit/{id}')

所以这只有在我只需要向用户显示和更新一个记录/行时才有用。基本上就像博客条目有一个标题,一行的正文。我只想让用户转到route / nav / edit /并显示nav的所有行作为可编辑的输入发送回数据库。

我的问题是,如何从表中检索多行并将其值显示到输入字段中,当用户编辑其字段时,可以为每个ID跟踪和发布这些字段?

示例:

我有一张表格如下:

id |网址| url_name |

我想检索每个网址并为每个网址填充一个输入表单,以便用户可以更新网址及其显示名称,然后将其发送回数据库以更新其新值。

下面这样的内容会为每个产生一个输入字段,但没有什么可以告诉Laravel提交值应该去哪里以及应该替换它们。

@foreach($links as $link)
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>
    {{ Form::text($link->url_name, $link->url_name, array('id' => $link->id, 'name' => $link->url_name)) }}
</li>
@endforeach

1 个答案:

答案 0 :(得分:1)

您可以在输入名称中使用链接ID作为数组键,以便您可以知道哪个值属于哪个ID

<input type='text' value="{{ $link->url_name }}" name="url_name[{{ $link->id }}]">

它将发送如下数组:

$_POST[
    'url_name'=>array(
         '3'=>'url_name1',
         '5'=>'url_name2',
         '7'=> 'url_name3'
    )
 ]