当我将Route::resource('api', 'ApiController');
添加到 app / Http / routes.php 时,我收到此错误:
BadMethodCallException方法[index]不存在。
我的api控制器看起来像这样:
<?php
class ApiController extends BaseController
{
public function getIndex()
{
echo "No Access";
}
public function postIndex()
{
// content here ...
}
public function check_ban($user, $gameBit, $ip)
{
// content here ...
}
public function check_balance($userid, $gameid, $serverid)
{
// content here ...
}
public function purchase_item($xml)
{
// content here ...
}
public function LoginRequest($xml)
{
// content here ...
}
public function CurrencyRequest($xml)
{
// content here ...
}
public function ItemPurchaseRequest($xml)
{
// content here ...
}
}
我的api应该处理游戏登录请求,购买物品,禁止检查等,但我收到上述错误。
我该如何解决?
答案 0 :(得分:1)
当您使用以下内容宣布resourceful
路线
Route::resource('api', 'ApiController');
然后让Laravel
为您生成方法,然后转到command prompt/terminal
并运行:
php artisan controller:make ApiController
这将在ApiController
目录中创建一个app/controllers
资源丰富的控制器,并创建所有方法(Method的骨架)。要确保哪个方法可以侦听哪个URI
和HTTP
方法,请从php artisan routes
运行command prompt/terminal
,这样您就可以了解相关信息。详细了解Laravel
网站上的resourceful controllers。
如果您想针对HTTP
谓词声明自己的方法,那么创建一个RESTful
控制器并创建一个RESTful
控制器,您不必运行任何artisan
来自terminal
的命令,但使用:
Route::controller('api', 'ApiController');
然后创建前缀为HTTP
动词的方法,以响应该动词,例如:
class ApiController extends BaseController {
// URL: domain.com/api using GET HTTP method
public function getIndex()
{
//...
}
// URL: domain.com/api/profile using POST HTTP method
public function postProfile()
{
//...
}
// ...
}
如果您运行php artisan routes
,那么您将能够看到所有URI
和方法映射。查看Laravel
网站上的RESTful controllers。