首页 文章

未找到Laravel 404页面,路线存在

提问于
浏览 825
2

我试图导航到我的“productdetail”页面,但它给我一个404. productdetail的路径确实存在 . 我试图从商店到产品详细信息提供产品信息

我的控制器:

<?php

namespace App\Http\Controllers;

use DB;
use Illuminate\Http\Request;
use App\Product;

class ProductsController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function shopindex()
    {
        $productsOTs = DB::select(DB::raw("SELECT * FROM wiz.productimages WHERE Afkorting = 'PPI' LIMIT 83, 3"));
        return view('shop', compact('productsOTs'));
    }

    public function productdetail(Product $Product)
    {   
        return view('Products.productdetail', compact('productsOT'));

    }

}

我的商店页面链接到productdetail:

@foreach ($productsOTs as $productsOT)
                <div class="card ot-product" id="heightwidthfix">
                    <img class="card-img-top cardstop" src="{{$productsOT->imagelink}}" alt="Card image cap" id="myshopmodal1" height="400px" width="300px">
                    <div class="card-body">
                        <h5 class="card-title">{{$productsOT->Productomschrijving}}</h5>
                        <p class="card-text">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
                    </div>
                    <div class="card-body">
                        <a href="/shop/productdetail/{{ $productsOT->Productcode }}" class="card-link">Bekijk hier het product</a>
                    </div>
                </div>
            @endforeach

我的路线:

Route::get('/shop', ['middleware' => 'auth', 'uses' => 'ProductsController@shopindex']);
Route::get('/shop/productdetail/{product}', ['middleware' => 'auth', 'uses' => 'ProductsController@productdetail']);

我一直在努力解决这个问题,我希望有人可以帮助我 .

5 回答

  • 0

    我认为您传递的路由参数问题不合适

    <a href="/shop/productdetail/{{ $productsOT->relevant_id_colunm_name }}" class="card-link">Bekijk hier het product</a>
    
  • 0

    改变这一行:

    <a href="/shop/productdetail/{{ $productsOT->Productcode }}" class="card-link">Bekijk hier het product</a>
    

    <a href="{{ url('shop/productdetail/'.$productsOT->Productcode) }}" class="card-link">Bekijk hier het product</a>
    

    这是一个小错误 . 改变这一点,我希望它有所帮助 . 谢谢

  • 0

    你为什么不试着为你的路线命名

    Route::get('/shop/productdetail/{product}', ['middleware' => 'auth', 'uses' => 'ProductsController@productdetail'])->name('show-product');
    

    然后通过它的名字来调用它:

    <a href="{{route('show-product',$productsOT->Productcode) }}" class="card-link">Bekijk hier het product</a>
    

    这可能会解决您的问题,否则问题不在路线上 .

  • 0

    请使用以下方式

    Route::middleware(['auth'])->get('/shop/productdetail/{product}', 'ProductsController@productdetail');
    

    我通常更喜欢将中间件分组,以便通过以下方式一次又一次地克服它

    Route::group(['middleware' => 'auth'], function () {
            /** Dashboard */
            Route::match(['get', 'post'], '/dashboard', 'AdminController@dashboard');
            /**Customer */
            Route::get('/customers', 'AdminController@customerListing');
    });
    
  • 0

    请运行此推荐

    php artisan route:cache

    并且

    php artisan cache:清楚

相关问题