Php 拉雷维尔4号的路线问题

Php 拉雷维尔4号的路线问题,php,routing,routes,laravel,laravel-4,Php,Routing,Routes,Laravel,Laravel 4,我是新来拉维尔的,现在正在学习。我在routes.php文件中给出了以下路径 Route::resource('contacts', 'ContactsController'); 但当我在浏览器中加载我的页面时,它会给我以下错误 Unhandled Exception Message: Call to undefined method Laravel\Routing\Route::resource() Location: /Users/zafarsaleem/Sites/learning

我是新来拉维尔的,现在正在学习。我在
routes.php
文件中给出了以下路径

Route::resource('contacts', 'ContactsController');
但当我在浏览器中加载我的页面时,它会给我以下错误

Unhandled Exception

Message:

Call to undefined method Laravel\Routing\Route::resource()
Location:

/Users/zafarsaleem/Sites/learning-laravel/application/routes.php on line 35
404 Not Found

The requested URL /contacts was not found on this server.
_____________________________________________________________________
Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch Server at bb.dev Port 80
403 Forbidden

You don't have permission to access /contacts on this server.
__________________________________________________________________________________
Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch Server at bb.dev Port 80
下面是我完整的routes.php文件

Route::resource('contacts', 'ContactsController');

Route::get('/', function()   //<------- This is line 35
{
    return View::make('home.index');
});
编辑2

我尝试了以下两种方法,但结果都是相同的错误

Route::resource('contacts', 'ContactsController', ['only', => ['index']]);
Route::get('contacts','ContactsController@index');
在重新安装laravel 4之后,现在我发现以下错误

Unhandled Exception

Message:

Call to undefined method Laravel\Routing\Route::resource()
Location:

/Users/zafarsaleem/Sites/learning-laravel/application/routes.php on line 35
404 Not Found

The requested URL /contacts was not found on this server.
_____________________________________________________________________
Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch Server at bb.dev Port 80
403 Forbidden

You don't have permission to access /contacts on this server.
__________________________________________________________________________________
Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch Server at bb.dev Port 80
编辑3

下面是我现在所做的,我编辑了“/private/etc/apache2/users/.conf”,并从“AllowOverride None”更改为“AllowOverride All”,然后重新启动了我的apache服务器。现在我得到以下错误

Unhandled Exception

Message:

Call to undefined method Laravel\Routing\Route::resource()
Location:

/Users/zafarsaleem/Sites/learning-laravel/application/routes.php on line 35
404 Not Found

The requested URL /contacts was not found on this server.
_____________________________________________________________________
Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch Server at bb.dev Port 80
403 Forbidden

You don't have permission to access /contacts on this server.
__________________________________________________________________________________
Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch Server at bb.dev Port 80
为什么我没有此联系人控制器的权限?现在我快疯了

这是我的.htaccess文件

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

选项-多视图
重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]

这可能是一个名称空间问题——它应该调用Lightlight\Routing\Router上的函数,但您的异常是指Laravel\Routing\Route::resource()


您的配置文件中是否仍有对Laravel3的引用?

您是否在其他服务器上尝试过此操作?重写可能会导致很多问题(我花了数小时修复.htaccess),因此问题可能是Apache而不是Laravel

这在
public/.htaccess
中对我有效:

<IfModule mod_rewrite.c>
     RewriteEngine on

     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d

     RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php/$1[L]

您是否尝试过使用
index.php/contacts
而不是
/contacts
?如果这样做有效,问题是Apache,而不是Laravel。

尝试将路由更改为

Route::resource('/contacts', 'ContactsController');
在ContactsController.php中,更改索引以返回模型的实例

public function index()
{
    return Contact::all();
}
我有同样的$#%&问题,经过数小时的搜索,我发现这不是.httaces文件的问题。我刚刚做了什么来解决这个问题:

composer update --dev

我认为
--dev
位是很重要的。希望这对某人有所帮助。

好的,我一分钟前就遇到了这个问题! 这是因为ide助手 要解决此问题,您应该在routes.php中注释以下代码

use Illuminate\Routing\Route;

路线可以是get、post、put。。。。只需将其更改为适当的请求。另外,请阅读有关路由的文档。@itachi这篇文章中的路由文档并没有说路由必须是get、post、put等。如果您阅读关于这篇文章的评论,您会发现我正在使用的路由也是可能的。据我所知,默认情况下,laravel支持get、post、put、head和delete请求。如果您打开框架并查看路由是如何完成的,那么您将看到与每个请求相关联的特定方法。如果您使用的是bundle,则会出现问题。你在用吗?如果是,以下文档将介绍哪一个?资源控制器:。resource()函数是在Router类文件的第216行定义的。我在我的Laravel 4上测试了你的代码,它可以工作。我会尝试重新安装Laravel4,看看是否可以修复它。可能是另一个问题。不,我以前从未用过拉威尔。这是我第一次使用它,从laravel 4开始。我还没有安装过laravel 3,pastI根据youtube上的一个屏幕重新安装了整个laravel。但是这一次它说
找不到请求的URL/联系人在此服务器上找不到