找不到Laravel 404页面,路由存在

时间:2018-12-10 09:42:30

标签: php laravel

我正在尝试导航到“ 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']);

我已经为这个问题苦苦挣扎了一段时间,希望有人能帮助我。

6 个答案:

答案 0 :(得分:0)

请运行此命令

  

php artisan route:cache

还有

  

php artisan cache:clear

答案 1 :(得分: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>

这可能会解决您的问题,否则问题就不在路由上了。

答案 2 :(得分: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');
});

答案 3 :(得分: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>

这是个小错误。更改此设置,希望对您有所帮助。谢谢

答案 4 :(得分:0)

我认为您通过的route参数存在问题,不适合通过

Description: The process was terminated due to an unhandled exception.

答案 5 :(得分:0)

.htaccess出现问题。 我上传了,但是不知何故! 我遇到了其他问题,.htaccess文件的内容都记录在这里: https://stackoverflow.com/a/64828062/1938507