我有更新表格来更新产品详情:
<form action="{{ path_for('product.update', {id: product.id}) }}" method="get">
// another fields
<input type="hidden" name="_METHOD" value="PUT">
<input type="submit" name="submit" class="submit" value="update">
路线:
$app->get('/admin/product/edit/{id}', ['maimana\Controllers\AdminController','editupdateProduct'])->setName('product.edit');
$app->get('/admin/product/update/product/{id}', ['maimana\Controllers\AdminController','updateProduct'])->setName('product.update');
和控制器:
公共函数updateProduct($ id,Request $ request,Response $ response){
$product = $this->product->where('id',$id)->first()->update([
'title' => $request->getParam('title'),
'category' => $request->getParam('category'),
'slug' => $request->getParam('slug'),
'description' => $request->getParam('description'),
'price' => $request->getParam('price'),
'image' => $request->getParam('image'),
'stock' => $request->getParam('stock')
]);
return $response->withRedirect($this->router->pathFor('admin.product'));
}
每次我点击更新按钮,我都无法自动传递参数,它将变为PAGE NOT FOUND。但是当我手动添加id时,它会工作并重定向回admin.product。
请帮助我,我被困了大约4天,我需要这个来完成我的大学任务
答案 0 :(得分:0)
Slim似乎还使用了Restful URL。当你在表单中将_method设置为'put'并发送请求时,它会将其解释为PUT请求而不是GET。由于这是你的大学任务,我想我已经帮助你解决了99%的问题。