使用Query Builder进行Laravel更新记录

时间:2018-06-13 08:14:51

标签: laravel laravel-query-builder

我正在使用laravel项目并尝试使用查询构建器更新记录,但它不起作用, 这是我尝试编辑其中的记录的功能

 Route::get( 'radcheckedit', 'radcheckController@editchecksave' );

这是路线

{{1}}

当我没有更改更新查询中的第一个元素时,它没有更新,但是当我更改第一个元素时它已成功更新。换句话说(当我更改用户名的值时,它成功更新,当我不更改时用户名没有更新,当我在查询中放置属性第一个元素时,它必须更改它的值以进行更新,因此用户必须更改查询的第一个值并且它不好,因为用户可能不想编辑此元件)

它给我的消息未成功更新

2 个答案:

答案 0 :(得分:7)

您不应该在update函数中放置原始查询,它需要一组更新值。您可以使用内置查询构建器编写查询:

$result = DB::table('radcheck')
    ->where('id', $id)
    ->update([
        'username' => $username,
        'attribute' => $attribute,
        'value' => $value,
        'op' => $op
    ]);

甚至更好,无需手动从请求中获取变量:

$result = DB::table('radcheck')
    ->where('id', $id)
    ->update($request->only(['username', 'attribute', 'value', 'op']));

这也将使代码更具可读性。

答案 1 :(得分:0)

我相信您需要更改数据库:更新实施,请查看以下答案: DB::update laravel 5 raw query