我正在尝试使用Laravel 4创建一个安静的api但是我总是遇到错误:
“Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException”,“message”:“找不到控制器方法。”
我按照routes-first-in-first-out的说明进行操作。但我没有运气。
我的路线如下:
Route::group(array('prefix' => 'api/v1'), function(){
Route::resource('contact', 'ContactController');
});
Route::get('/', function(){
return View::make('hello');
});
控制器中的方法看起来像
public function store()
{
// ... somecode
}
我不知道我做错了什么。我已经在这里搜索,但我仍然保持相同的结果。
有谁知道问题出在哪里?
答案 0 :(得分:1)
您需要先了解有关Restful Controllers的更多信息。如果仔细观察docs page,请在桌面上看......
您的行为store
说:
Verb Path Action Route Name
POST /resource store resource.store
表示:
verb
)。 path
是/资源,在您的情况下为api/v1/contact
回到你的问题..
通过浏览器使用“api / v1 / contact / store”URL进行浏览将产生GET请求 到那条路线,但商店需要一个POST请求。如果你从表单提交一个POST到商店URL,它会成功但是通过浏览器(GET)转到它肯定会产生一个错误,说由于你没有得到'api / v1 / contact,所以无法找到路由/ store'route'声明..
答案 1 :(得分:0)
我发现在我最初使用javascript发布的帖子请求之后,重定向是triggero taht,它失败了。 我不知道为什么。 .htacces文件是laravel intalation的原始文件,虚拟主机是:
<VirtualHost *:80>
ServerName raulcm.laravel
DocumentRoot /var/www/raulcm.laravel/public
<Directory /var/www/raulcm.laravel/public>
Options Indexes FollowSymLinks Includes ExecCGI
DirectoryIndex index.php
AllowOverride All
Order deny,allow
Allow from all
</Directory>
ErrorLog /var/www/raulcm.laravel/logs/error.log
CustomLog /var/www/raulcm.laravel/logs/access.log common
</VirtualHost>