【发布时间】:2018-11-22 17:48:59
【问题描述】:
我从事 laravel 项目并尝试使用查询生成器更新记录,但它不起作用, 这是我试图在其中编辑记录的功能
public function editchecksave(Request $request)
{
$id = $request->id;
$username = $request->username;
$attribute = $request->attribute;
$value = $request->value;
$op = $request->op;
$result = DB::update('update radcheck set username = "?" ,
attribute="?",value="?" ,op="?" where id = ?',
[$username,$attribute,$value,$op,$id]
);
if ($result)
{
return response()->json([ 'msg' => 'Updated Successfully' . $username]);
}
return response()->json([ 'msg' => 'Not Updated Successfully'. $value]);
}
这是路线
Route::get( 'radcheckedit', 'radcheckController@editchecksave' );
当我不更改更新查询中的第一个元素时,它没有更新,但是当我更改第一个元素时,它成功更新。换句话说(当我更改用户名的值时,它成功更新并且当我不更改用户名未更新,当我将属性第一个元素放在查询中时,它必须更改它的值以进行更新,因此用户必须更改查询的第一个值,这不好,因为用户可能不想编辑此元素)
它给我消息未成功更新
【问题讨论】:
-
DB::update不应该以您在这里使用的方式使用,我不确定它是否接受原始查询,如果接受,您必须做点什么比如DB::update(DB::raw('query here'));你应该看看documentation 用于基于更新的查询生成器。 -
没用,谢谢
-
咨询下面的@Jerodev 答案,这是您最好的解释。
标签: laravel laravel-query-builder