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')->get('/user', function (Request $request) return $request->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') <a href=" url('/home') "> <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"> __('Go Home') </button> </a> @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)
或在您的路由中添加路由器名称。 ->name('shop_productdetails);
然后在你的刀片中使用它route('shop_productdetails',$id)
不客气的朋友
【讨论】:
【参考方案9】:为什么你用$productsOt->ProductCode
而不是$productsOt->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 中未找到的页面?