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

标签 php mysql forms laravel laravel-4

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

@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}')

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

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

例子:

我有一个表格如下:

编号 |网址 |网址名称 |

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

像下面这样的东西会为每个值生成一个输入字段,但是在提交时没有什么可以告诉 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

最佳答案

您可以使用链接 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'
    )
 ]

关于php - Laravel:表格更新表中的多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28129912/

相关文章:

javascript - 未发送 JavaScript 中的 POST 数据

mysql - 当有两个或多个进程同时请求它时,数据库如何决定它应该给哪个进程锁定?

PHP;原产地保护组织;带有下拉菜单的 MySQL INSERT 查询

javascript - 提交按钮按条件在函数中向上 float

javascript - 已经通过 JS 验证的表单。还需要在提交时清除字段

php - 在 SQL 配对系统中,如何避免因滞后而导致过度匹配?

php - javascript:确认 submit() 是否完成重新加载页面的代码

php - 使用 PHP 设置选定的属性

php - 在 Laravel 5.1 中更改 session 文件名

iphone - SQlite同步方案