我正在开发一个似乎没有正确路由POST请求的Laravel 5 RESTful API。
这是我的routes.php:
Route::group(array('prefix' => 'api/v1'), function()
{
Route::resource('messages', 'IncomingMessages');
});
这是我的控制者:
class IncomingMessages extends Controller
{
public function index() {
return "This is index";
}
public function store() {
return "This is store";
}
public function update() {
return "This is update";
}
}
这就是发生的事情:
GET mydomain.com/api/v1/messages/
- >这是索引PUT mydomain.com/api/v1/messages/1
- >这是更新POST mydomain.com/api/v1/messages/
- > 这是索引 这是php artisan route:list
返回的内容:
所以,我的问题是:
我错过了什么?为什么路由到index()
而不是路由到store()
?
注意:
Kernel.php
更新
问题是在网址中添加了一个尾随/
。所以,而不是使用此URL:
mydomain.com/api/v1/messages/
我试过这个:
mydomain.com/api/v1/messages
并且有效
答案 0 :(得分:6)
问题是由添加到网址的尾随/
引起的。所以,而不是使用此URL:
mydomain.com/api/v1/messages/
我试过这个:
mydomain.com/api/v1/messages
并且有效。
我通过查看服务器的日志来发现它。这就是我发现对URL messages/
的POST请求被重定向的方式。
答案 1 :(得分:0)
如果您仍然遇到此问题,并且路由正在使用FormRequest
检查其中是否有authorize
函数,因为如果返回false,它将重定向。