如何在 laravel 的管理控制器中获取添加和编辑功能
how to get add and edit feature in admin controller in laravel
所以基本上我在电子商务管理面板上工作,视图中有两个链接(添加和编辑)都应该重定向到相同的管理表单。
我已经实现了添加产品的路由和控制器,但我还想要一个编辑和删除功能,它发送该可编辑产品的详细信息,以便我可以编辑。
//这是我的管理员查看代码,获取产品详细信息
<body>
@foreach ($data as $p)
<tr>
<td>{{$p['product_name']}}</td>
<td>{{$p['product_price']}}</td>
<td>{{$p['category']}}</td>
<td>{{$p['seller']}}</td>
<td>
<a href="">Edit</a>
<a href="">Delete</a>
</td>
</tr>
@endforeach
<h4><a href='manage'>Add Product</a></h4>
</body>
//这是我的路线
Route::post('manage/add',[adminController::class,'add_product']);
//添加产品的控制器
public function add_product(Request $request){
$add=new product;
$add->product_name=$request->input('product_name');
$add->product_image=$request->input('product_image');
$add->product_price=$request->input('product_price');
$add->category=$request->input('product_category');
$add->seller=$request->input('product_seller');
$add->save();
return redirect('admin');
}
//这是我的管理表格
<form action="manage/add" id="product_manage_form" method="post">
@csrf
<input type="text" class="form-control" id="productInput" name='product_name' value="" placeholder="Enter product name" required><br>
<input type="text" class="form-control" id="productInput" name='product_image' value="" placeholder="Enter product image name" required><br>
<input type="text" class="form-control" id="productInput" name='product_price' value="" placeholder="Enter product price" required><br>
<input type="text" class="form-control" id="productInput" name='product_category' value="" placeholder="Enter product category" required><br>
<input type="text" class="form-control" id="productInput" name='product_seller' value="" placeholder="Enter product seller" required><br>
<div>
<input type='submit' value='submit'>
</div>
</form>
如果是管理表单中的编辑选项,应该会自动填充数据。请帮助我如何实现这一目标,我是 laravel 的新人,提前致谢
将附加参数添加到路由作为可选参数id.So相同的路由可用于添加和编辑
Route::post('manage/add/{id?}',[adminController::class,'add_product'])->name('manageProduct');
在您的视图中添加路线 link 进行如下编辑
<a href="{{route('manageProduct',$p['id'])}}">Edit</a>
控制器中修改方法如下
public function add_product(Request $request,$id=null){
if(empty($id)){
$add=new product;
} else{
$add=product::find($id);
}
$add->product_name=$request->input('product_name');
$add->product_image=$request->input('product_image');
$add->product_price=$request->input('product_price');
$add->category=$request->input('product_category');
$add->seller=$request->input('product_seller');
$add->save();
return redirect('admin');
}
在您的 route.php
中添加以下内容
Route::get('manage/{id}/edit',[adminController::class,'edit_product']);
然后
public function edit_product($id){
$product = Product::where('id', $id)->first();
return view('manage.add', ['product' => $product]);
}
然后您可以在管理表单中访问 $product。
所以基本上我在电子商务管理面板上工作,视图中有两个链接(添加和编辑)都应该重定向到相同的管理表单。 我已经实现了添加产品的路由和控制器,但我还想要一个编辑和删除功能,它发送该可编辑产品的详细信息,以便我可以编辑。
//这是我的管理员查看代码,获取产品详细信息
<body>
@foreach ($data as $p)
<tr>
<td>{{$p['product_name']}}</td>
<td>{{$p['product_price']}}</td>
<td>{{$p['category']}}</td>
<td>{{$p['seller']}}</td>
<td>
<a href="">Edit</a>
<a href="">Delete</a>
</td>
</tr>
@endforeach
<h4><a href='manage'>Add Product</a></h4>
</body>
//这是我的路线
Route::post('manage/add',[adminController::class,'add_product']);
//添加产品的控制器
public function add_product(Request $request){
$add=new product;
$add->product_name=$request->input('product_name');
$add->product_image=$request->input('product_image');
$add->product_price=$request->input('product_price');
$add->category=$request->input('product_category');
$add->seller=$request->input('product_seller');
$add->save();
return redirect('admin');
}
//这是我的管理表格
<form action="manage/add" id="product_manage_form" method="post">
@csrf
<input type="text" class="form-control" id="productInput" name='product_name' value="" placeholder="Enter product name" required><br>
<input type="text" class="form-control" id="productInput" name='product_image' value="" placeholder="Enter product image name" required><br>
<input type="text" class="form-control" id="productInput" name='product_price' value="" placeholder="Enter product price" required><br>
<input type="text" class="form-control" id="productInput" name='product_category' value="" placeholder="Enter product category" required><br>
<input type="text" class="form-control" id="productInput" name='product_seller' value="" placeholder="Enter product seller" required><br>
<div>
<input type='submit' value='submit'>
</div>
</form>
如果是管理表单中的编辑选项,应该会自动填充数据。请帮助我如何实现这一目标,我是 laravel 的新人,提前致谢
将附加参数添加到路由作为可选参数id.So相同的路由可用于添加和编辑
Route::post('manage/add/{id?}',[adminController::class,'add_product'])->name('manageProduct');
在您的视图中添加路线 link 进行如下编辑
<a href="{{route('manageProduct',$p['id'])}}">Edit</a>
控制器中修改方法如下
public function add_product(Request $request,$id=null){
if(empty($id)){
$add=new product;
} else{
$add=product::find($id);
}
$add->product_name=$request->input('product_name');
$add->product_image=$request->input('product_image');
$add->product_price=$request->input('product_price');
$add->category=$request->input('product_category');
$add->seller=$request->input('product_seller');
$add->save();
return redirect('admin');
}
在您的 route.php
中添加以下内容Route::get('manage/{id}/edit',[adminController::class,'edit_product']);
然后
public function edit_product($id){
$product = Product::where('id', $id)->first();
return view('manage.add', ['product' => $product]);
}
然后您可以在管理表单中访问 $product。