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

Posted

技术标签:

【中文标题】Laravel 404 页面未找到,路径存在【英文标题】:Laravel 404 page not found, route exists 【发布时间】:2019-05-11 04:39:05 【问题描述】:

我正在尝试导航到我的“productdetail”页面,但它给了我一个 404。到 productdetail 的路径确实存在。我正在尝试将产品信息从商店提供给 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"  id="myshopmodal1"  >
                    <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']);

我一直在为这个问题苦苦挣扎,希望有人能帮助我。

【问题讨论】:

请显示错误画面? 您确定您的productdetail 视图位于Products 文件夹中吗?请仔细检查 您的Productcode 是您产品表的唯一标识符列吗? return view('Products.productdetail', compact('productsOT'));这里的productsOT是什么? 是的,我的 productdetail 视图位于 Products 文件夹中 【参考方案1】:

请运行此推荐

php 工匠路线:缓存

还有

php 工匠缓存:清除

【讨论】:

它给了我一个错误:LogicException : Unable to prepare route [api/user] for serialization。使用闭包。 @slekniws 是的,我也一样。有什么解决办法吗? 请检查routes/api.php文件。 Laravel 为上述文件添加了一个默认的 auth api 路由。注释该文件中的代码,错误就会消失。 这将是代码Route::middleware('auth:api')-&gt;get('/user', function (Request $request) return $request-&gt;user(); ); 请在您的答案中添加一些解释,以便其他人可以从中学习【参考方案2】:

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

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>

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

【讨论】:

【参考方案3】:

请使用以下方式

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

【讨论】:

Stil 给了我一个 404。 能否请您添加404图像。我认为视图页面可能是正确的。 即使测试项目和工作项目有可能出错 我们制作了自己的错误页面:@extends('layouts.errorLayout') @section('code', '404') @section('title', __('Page Not Found')) @section('homebutton') &lt;a href=" url('/home') "&gt; &lt;button class="bg-transparent text-kuijpers-blue font-bold uppercase tracking-wide py-3 px-6 border-2 border-grey-light hover:border-grey rounded-lg"&gt; __('Go Home') &lt;/button&gt; &lt;/a&gt; @endsection @section('message', __('Sorry, the page you are looking for could not be found.')) 我不知道如何将代码放在一起,这样不太清楚..【参考方案4】:

改变这一行:

<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>

这是一个小错误。改一下,希望对你有帮助。谢谢

【讨论】:

还要删除路由中的中间件,因为您在控制器构造函数中添加了中间件。并使用简单的路线,如 Route::get('/shop/productdetail/product', 'ProductsController@productdetail');【参考方案5】:

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

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

【讨论】:

【参考方案6】:

我遇到了 .htaccess 的问题。 我上传了,但不知何故不见了! 我遇到了一些其他问题,所有内容都记录在我的 .htaccess 文件内容中: https://***.com/a/64828062/1938507

【讨论】:

【参考方案7】:

只需在终端上输入

php工匠路线:清除

【讨论】:

请在您的答案中添加一些解释,以便其他人可以从中学习【参考方案8】:

嘿,伙计,第一件事就是听你的指挥

php artisan route:clear php artisan optimize

但我发现了一些东西,我担心你的代码。

我更喜欢你 2 选择来解决这个问题

URL('/shop/productdetail/'.$id_here) 或在您的路由中添加路由器名称。 -&gt;name('shop_productdetails); 然后在你的刀片中使用它route('shop_productdetails',$id)

不客气的朋友

【讨论】:

【参考方案9】:

为什么你用$productsOt-&gt;ProductCode 而不是$productsOt-&gt;id?如果您需要使用ProductCode。使用

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

如果您的列名称是 ProductCode

【讨论】:

我建议不要在答案中使用修辞问题。他们冒着被误解为根本不是答案的风险。您正在尝试回答此页面顶部的问题,不是吗?否则请删除此帖。 请将其表述为有条件的解释性答案,以避免给人以澄清问题而不是回答的印象(应该使用评论而不是答案,比较meta.stackexchange.com/questions/214173/…)。例如像“如果你的问题是......那么解决方案是......因为......。”【参考方案10】:

尝试关注

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

如果这不起作用,请尝试

php artisan route:clear

如果不行,试试

php artisan optimize

【讨论】:

以上是关于Laravel 404 页面未找到,路径存在的主要内容,如果未能解决你的问题,请参考以下文章

未找到 Laravel 6 css 和 js 文件( net::ERR_ABORTED 404 (Not Found) )

如何将不存在的数据页面重定向到 Codeigniter 中未找到的页面?

Laravel 有时显示 404 not found 页面

Laravel API 路由 404 未找到修复?

如果在 Laravel 5.1 中找不到路由,则显示 404 页面

Laravel RegisterController 路由未找到