对于我正在编写的API,在我的路径文件中我有:
$app->get('item/{id}', 'ApiController@item');
$app->get('groupitems/{group}', 'ApiController@groupItems');
在我的控制器中,我有相关的两个功能:
public function item($id, Request $request)
{
if ($this->isAuthorised($request->input('tenant_id'), $request->input('api_code'))) {
$item = Line::find($id);
if ($item) { ...
public function groupItems($id, Request $request)
{
if ($this->isAuthorised($request->input('tenant_id'), $request->input('api_code'))) {
$items = Line::where('tenant_id', $request->input('tenant_id'))->where('publish', true) ...
调用都以完全相同的方式进行,例如:
http://api.artlook.com/groupitems/29?tenant_id=2&api_code=o9rty43
请不要尝试,因为此时URL仅在本地服务器上。
我的第一个功能完美运行。第二个返回错误异常
Argument 2 passed to groupItems() must be an instance of Illuminate\Http\Request, string given
但它们是相同的并且在同一个控制器中。帮助
答案 0 :(得分:0)
此处的问题是您已将参数名称声明为{group}
。因此,您需要将参数变量设置为该名称:
public function groupItems($group, Request $request)
...