路由未命中控制器

Posted

技术标签:

【中文标题】路由未命中控制器【英文标题】:Route Not Hitting Controller 【发布时间】:2019-06-26 23:14:47 【问题描述】:

当我尝试为产品创建视图时,URL 会正确构建。

http://localhost:8000/product/my-slug

但是,我找不到 404 页面,我不知道为什么。就像控制器没有被调用一样。

启动

<a href=" route('product.view', $product->slug) ">

路线

Route::get('/product/$slug', 'ProductsController@view')->name('product.view');

控制器

public function view($slug)

    $product = Product::find($slug);

    return view('products.view', compact('product'));

查看

<h1> $product->name </h1>

编辑

web.php

Route::get('/', 'ProductsController@index')->name('product.index');
Route::get('/products/create', 'ProductsController@create')->name('product.create');
Route::post('/products', 'ProductsController@store')->name('product.store');
Route::get('/product/$slug', 'ProductsController@view')->name('product.view');
/*Route::get('/users', 'UsersController');*/

Route::get('/contact', 'PagesController@contact');
Route::get('/about', 'PagesController@about');

【问题讨论】:

你能显示web.php的内容吗? 你的slug列是主键吗? @Davit web.php 添加 @Md.SukelAli 不,这是另一个需要解决的问题。即使视图函数只是说 return "test"; 我得到了 404。 【参考方案1】:

尝试改变

Route::get('/product/$slug', 'ProductsController@view')->name('product.view');

Route::get('/product/slug', 'ProductsController@view')->name('product.view');

参考:Laravel Routing

【讨论】:

是的!那就是问题所在。我刚刚在我的机器上检查了它。我怀疑这会是问题所在,但不是 100% 确定。

以上是关于路由未命中控制器的主要内容,如果未能解决你的问题,请参考以下文章

数据表 Ajax url 未命中控制器操作

MVC .NET 表单提交未命中控制器操作

来自弹出表单的 ajax 数据发布未命中控制器方法 ASP.NET MVC

弹出窗口中的ajax数据发布未命中控制器方法ASP.NET MVC

Web API 客户端发布未命中数据库

在路由匹配发生之前拦截所有 WebApi 调用