2

我是 Laravel 的初学者,我被我的代码困住了。我想将我的站点选项和详细信息存储在数据库中,而我不知道如何更新多行,也许我的数据库结构也不是最好的。

数据库

id | option_name      | option_value
1  | site_name        | Website name
2  | site_slogen      | Website slogen
3  | site_description | Website description
4  | post_per_pages   | 20

我的表格

{{ Form::open('admin/options', 'POST', array('class' => 'span5 no-float centered')) }}

    @foreach($options as $option)

        <?php $name = str_replace('_', ' ', ucfirst($option->option_name)); ?>

        {{ Form::label($name, $name) }}
        @if($option->option_name == "site_description")
            {{ Form::textarea($option->option_name, $option->option_value, array('class' => 'input-block-level', 'rows' => '5')) }}
        @else
            {{ Form::text($option->option_name, $option->option_value, array('class' => 'input-block-level')) }}
        @endif

        {{ $errors->has($option->option_name) ? '<p class="val_error">' .$errors->first($option->option_name). '</p>' : '' }}

        {{ Form::hidden('id[]', $option->id) }}
    @endforeach

     {{ Form::button('Update options', array('class' => 'btn btn-primary btn-block')) }}

我知道这不是最好的,但我正在努力。有人可以给我一个关于多重更新的提示吗?

我试过但我迷路了

4

4 回答 4

3

您可以构建一个查询,如下所示:

YourTable::query()->where('YourTableColumn', 'Variable/Field to match against')->update(array('Fiel' => $new_username));

在更新中,您可以传递字段数组及其值,您希望为所有获取的行更新这些字段。

于 2014-07-24T00:50:13.763 回答
0

哦,我想知道它会影响查询的数量

$inputs = Input::all();

foreach($inputs as $key => $value)
{
    $content = Content::find($id);
    $content->$key = $value;
    $content->save();
}
于 2016-01-18T08:32:43.023 回答
0

复制目标表,命名为'mytable_insertbypass',操作前trunca,然后插入优化,插入后,查询更新:

更新产品,products_insertbypass SET products.price = products_insertbypass.price WHERE products.id = products_insertbypass;

Favaloro 规则的 ;)

于 2016-10-21T20:46:45.703 回答
-4

您可以遍历行并保存它们。

$inputs = Input::all();
$content = Content::find($id);

foreach($inputs as $key => $value)
{
    $content->$key = $value;
}

$content->save();
于 2013-05-31T18:04:01.303 回答