【问题标题】:Laravel 404 page not found, route existsLaravel 404 页面未找到,路径存在
【发布时间】: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}}" 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']);

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

【问题讨论】:

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

标签: php laravel


【解决方案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://stackoverflow.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
          

          【讨论】:

            猜你喜欢
            • 2022-06-15
            • 2016-06-22
            • 2017-06-17
            • 2020-04-05
            • 1970-01-01
            • 2020-04-17
            • 2016-10-20
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多