我是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')) }}
我知道这不是最好的,但我在尝试。 有人可以给我一个关于多次更新的提示吗?
我试过但我失去了
答案 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();