Laravel更新多行

时间:2013-05-31 17:04:26

标签: php sql-update laravel

我是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 个答案:

答案 0 :(得分:3)

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

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

在更新中,您可以传递字段数组,并为其所有已获取的行更新其值。

答案 1 :(得分:0)

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

$inputs = Input::all();

foreach($inputs as $key => $value)
{
    $content = Content::find($id);
    $content->$key = $value;
    $content->save();
}

答案 2 :(得分:0)

重复目标表,在操作前将其命名为“mytable_insertbypass&#39;,trunca”,然后插入优化后,在插入后进行更新查询:

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

Favaloro规则;)

答案 3 :(得分:-2)

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

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

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

$content->save();