【问题标题】:LARAVEL 5.2 Routing Object Not FoundLARAVEL 5.2 找不到路由对象
【发布时间】:2016-08-04 11:17:38
【问题描述】:

我通常将 laravel 与 artisan 一起使用,但在这种情况下,我必须在 lampp 中设置 laravel。我有类似的路线

Route::group(['middleware' => 'cors', 'prefix' => 'service'], function () {

  Route::group(['prefix' => 'master'], function () {

    Route::resource('produk', 'Master\ProdukController');
    Route::resource('agama', 'Master\AgamaController');
  });
Route::resource('list-generic', 'ListGeneric', ['only' => ['index']]);
});

还有我在公用文件夹中的 .htacess:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

我的问题是。当我访问此链接时:

http://172.16.16.1/a-web/service/list-generic?select=id

它完美地工作, 但是当我在列表通用之后使用“/”访问此链接时:

http://172.16.16.1/a-web/service/list-generic/?select=id

显示未找到错误对象, 请需要帮助..

【问题讨论】:

  • 您收到的确切错误是什么?

标签: php apache laravel-5 routes laravel-5.2


【解决方案1】:

这一定是因为你的路由文件。
添加时
Route::resource('list-generic', 'ListGeneric', ['only' =&gt; ['index']]);
Laravel 只会使用路由

http://172.16.16.1/a-web/service/list-generic

不是

http://172.16.16.1/a-web/service/list-generic/

要使上述路线起作用,您必须将可选参数添加到route

Route::resource('list-generic/{?query}', 'ListGeneric', ['only' => ['index']]);

此路由将处理所有这两种类型的链接。

【讨论】:

  • 让我困惑的是,为什么在 nginx 中工作得很好,我已经找到了 apache 服务器的解决方案,无论如何,我必须使用 .httpaccess,就像下面的评论帖子一样,谢谢你的回答 :)
  • 不,这不正确,表示查询参数是可选的
  • 问题在于使用不同的查询样式
  • @Mina Abadir 这意味着我的回答是错误的?我的意思是即使我不使用可选参数,路由(即有和没有/)都应该工作。对吗?
  • 在我的项目中工作时,我观察到了这种行为,我的答案就是基于此。请让我知道您的评论,以便我可以据此更新或删除我的答案。
【解决方案2】:

我为自己的问题找到了解决方案。 最后我必须编辑 .httaccess 文件:

Options -MultiViews
RewriteEngine On
RewriteBase /a-web/

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ $1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

【讨论】:

    猜你喜欢
    • 2016-06-08
    • 1970-01-01
    • 2015-10-27
    • 2017-10-29
    • 2015-06-26
    • 1970-01-01
    • 2016-11-15
    • 2016-07-15
    • 2016-08-30
    相关资源
    最近更新 更多