404 未找到 Laravel Eloquent

问题描述 投票:0回答:1

我有三个型号

产品型号:

public function propositions ()
    {
        return $this->belongsToMany(PropoCom::class, 'propo_com_produits',
        'propo_com_id','produit_id',)->withPivot('tva', 'prix_unitaire_ht', 'quantite', 'reduction', 'prix_revient');
    }

PropoCom 模型:

public function produits ()
    {
        return $this->belongsToMany(Produit::class, 'propo_com_produits',
        'propo_com_id','produit_id',)->withPivot('tva', 'prix_unitaire_ht', 'quantite', 'reduction', 'prix_revient');
    }

public function propoCom_produit()
    {
        return $this->hasMany(PropoCom_produit::class);
    }

PropoCom_产品型号:

public function produits(){
        return $this->belongsTo(Produit::class, 'produit_id');
      }

public function proposition (){
        return $this->belongsTo(PropoCom::class,"propo_com_id");
    }

PropositionController,它允许我修改与 PropoCom 关联的产品:

public function edit($id)
    {
        $commerce = PropoCom_produit::findOrfail($id);
        $proposition = $commerce->proposition;
        return view('layouts.commerce.edit-propo', compact('commerce', 'proposition'));
    }

编辑路线:

Route::get('/commerce/new/proposition/details/{propo_com_id}/edit'[App\Http\Controllers\PropositionController::class, 'edit'])->name('proposition.produit.edit');

带有链接的我的 Blade 视图允许我修改与 PropoCom 关联的产品:

<a href="{{ route('proposition.produit.edit', $proposition->id) }}" target="_blank" class="btn btn-primary btn-sm"><i class="fa fa-pen"></i></a>

但是当我将鼠标悬停在图标上查看链接时,它会从 PropoCom_Product ID 链接检索 PropoCom ID,当我单击它时,会收到 404 错误 未找到

有什么想法吗?

php laravel eloquent laravel-9
1个回答
0
投票

看起来您正在尝试将

PropoCom_produit
ID 传递给
edit
PropositionController
方法,但在路线定义中,您使用
propo_com_id
作为参数。这可能是导致问题的原因。

在路线定义中,您应该使用

PropoCom_produit
ID 作为参数。具体方法如下:

Route::get('/commerce/new/proposition/details/{id}/edit', [App\Http\Controllers\PropositionController::class, 'edit'])->name('proposition.produit.edit');

在 Blade 视图中,您应该将

PropoCom_produit
ID 传递给路线:

<a href="{{ route('proposition.produit.edit', $commerce->id) }}" target="_blank" class="btn btn-primary btn-sm"><i class="fa fa-pen"></i></a>

这样,当您点击链接时,它会将正确的

PropoCom_produit
ID 传递给
edit
PropositionController
方法。

© www.soinside.com 2019 - 2024. All rights reserved.