【问题标题】:how to get add and edit feature in admin controller in laravel如何在 laravel 的管理控制器中获取添加和编辑功能
【发布时间】:2021-02-17 21:29:06
【问题描述】:

所以基本上我正在处理电子商务管理面板,视图中有两个链接(添加和编辑)都应该重定向到相同的管理表单。 我已经实现了添加产品的路由和控制器,但我还想要一个编辑和删除功能,它发送该可编辑产品的详细信息以便我可以编辑。

//这是我的管理视图代码,获取产品详细信息

<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>&nbsp;
             <a  href="">Delete</a>&nbsp;
                
            </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 的新手,在此先感谢

【问题讨论】:

  • 你能澄清一下问题吗?
  • 我想按照描述实现,如何编码

标签: php laravel model-view-controller laravel-8


【解决方案1】:

为路由添加额外的参数作为可选 id。因此可以使用相同的路由进行添加和编辑

Route::post('manage/add/{id?}',[adminController::class,'add_product'])->name('manageProduct');

在您的视图中添加路线链接以进行编辑,如下所示

   <a  href="{{route('manageProduct',$p['id'])}}">Edit</a>&nbsp;

在控制器中修改方法如下

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');
 }

【讨论】:

  • 谢谢先生,但是如何配置管理表单以便将详细信息放在值字段中,我在编辑控制器中发送 $product 详细信息进行管理,然后我输入输入标签 value="{{$product[ '产品名称']}}”。现在编辑效果很好,但随后添加选项给出未定义的变量错误
  • @VinesVilla.you 可能需要调试哪个变量给出 undefined。或者发布有问题的整个细节,以便有人可以提供帮助
【解决方案2】:

在你的 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。

【讨论】:

  • 谢谢先生它的工作原理,但如何配置管理表单以便将详细信息放在值字段中,我输入输入标签值 =“{{$product['product_name']}}”。但然后添加选项给出未定义的变量错误
  • 你需要在每个值之前添加@before
猜你喜欢
  • 1970-01-01
  • 2021-03-04
  • 2020-05-31
  • 2013-11-05
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多