php - 在 Laravel 6 中仅更新控制器中一个字段的值
问题描述
我的项目要求管理员必须批准用户上传的项目,才能在网站上看到该项目,以进行验证或以某种方式控制一切。所以在 Item 表中,我有一个名为 (status) 的字段,并且有一个默认值 = (denied)。
$table->enum('status',['available','denied'])->default('denied');
管理员看到所有项目,如果管理员单击状态从拒绝更改为已批准,我希望每个项目旁边有一个按钮,称为批准,如何在控制器中创建仅更改状态字段的功能?除了已经在我的控制器中运行的默认编辑和更新功能之外的一个。
public function edit($itemid)
{
$where = array('itemid' => $itemid);
$data['item_info'] = Item::where($where)->first();
return view('items.edititem', $data);
}
public function update(Request $request, $itemid)
{
$request->validate([
'name' => 'required',
'description' => 'required',
'state' => 'required',
'price' => 'required',
'charityfee' => 'required',
'status' => 'required',
'category' => 'required',
]);
$update = [
'name' => $request->name, 'description' => $request->description,
'state' => $request->state, 'price' => $request->price,
'charityfee' => $request->charityfee, 'status' => $request->status,
'category' => $request->category, 'itemphoto' => $request->itemphoto
];
Item::where('itemid', $itemid)->update($update);
return Redirect::to('profile')
->with('success', 'Great! item updated successfully');
}
尽管我尝试了以下代码,但出现了一个错误,即我调用的函数未定义:(
public function editstatus($itemid)
{
Item::where('itemid', $itemid)->update(array('itemid' => 'available'));
}
控制器中的功能
<td><a href="{{ route('items.editstatus',$item->itemid)}}" class="btn btn-primary">approve</a></td>
视图中的代码
解决方案
您的问题出在 editstatus 功能上。你想更新status => 'available'但你编码 update itemid => 'available'。这就是它出错的原因。
您的代码应更改为以下内容:
public function editstatus($itemid)
{
Item::where('itemid', $itemid)->update(array('status' => 'available'));
}
推荐阅读
- bash - 使用动态部分在 bash 脚本中搜索/替换
- ffmpeg - 如何使用 ffpmpeg 连接 2 个 .m4v 文件并保留字幕
- c++ - 是否可以在 C++ 中使用 void 指针传递二维数组?
- haskell - 有什么可生成的吗?
- react-native - React Native App - 向右滑动意味着所有组件卸载....这可以停止吗?
- java - 如果在使用 jpa 的映射表中但我在类中省略了表字段怎么办?
- python - git: pre-commit-hook: python + nodejs: 如何配置
- c# - 这段代码中是否有任何问题可能会阻止我的跳跃能力
- python - Embarcadero RAD Studio 10.4 的 Android SDK 问题(Delphi 和 C++ Builder 的问题相同)
- visual-studio-code - 如何在 VSCode 中跳转到单词的末尾?