我的项目要求管理员必须批准用户上传的项目,以使该项目在网站上可见,这是一种验证或某种形式的控制。因此在“项目”表中,我有一个名为(状态)的字段,默认值为=(拒绝)。
$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>
视图中的代码
status =>'available'