首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Laravel 5路由问题-糟糕的方法调用异常

Laravel 5路由问题-糟糕的方法调用异常
EN

Stack Overflow用户
提问于 2015-04-21 16:24:33
回答 1查看 6.1K关注 0票数 2

我试图简单地将一个'PUT‘请求发送到我的一个路由(它作为路由文件中的一个资源被调用),但是我收到了这个回溯作为响应。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Whoops, looks like something went wrong.
1/1 BadMethodCallException in Controller.php line 273: Method [show] does not exist.

    in Controller.php line 273
    at Controller->__call('show', array('1'))
    at AccountControllerV2->show('1')
    at call_user_func_array(array(object(AccountControllerV2), 'show'), array('account' => '1')) in Controller.php line 246
    at Controller->callAction('show', array('account' => '1')) in ControllerDispatcher.php line 162
    at ControllerDispatcher->call(object(AccountControllerV2), object(Route), 'show') in ControllerDispatcher.php line 107
    at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
    at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 108
    at ControllerDispatcher->callWithinStack(object(AccountControllerV2), object(Route), object(Request), 'show') in ControllerDispatcher.php line 67
    at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\API\V2\AccountControllerV2', 'show') in Route.php line 198
    at Route->runWithCustomDispatcher(object(Request)) in Route.php line 131
    at Route->run(object(Request)) in Router.php line 692
    at Router->Illuminate\Routing\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Authenticate.php line 47
    at Authenticate->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
    at Pipeline->then(object(Closure)) in Router.php line 694
    at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 661
    at Router->dispatchToRoute(object(Request)) in Router.php line 619
    at Router->dispatch(object(Request)) in Kernel.php line 214
    at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in HttpsProtocol.php line 15
    at HttpsProtocol->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 55
    at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 61
    at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 36
    at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 40
    at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
    at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
    at Pipeline->then(object(Closure)) in Kernel.php line 115
    at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 84
    at Kernel->handle(object(Request)) in index.php line 53

我不知道为什么会发生这种事。

下面是Controller本身的代码片段(扩展了BaseController):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
     * Update the currently logged User in storage.
     *
     * @return Response 201
     * @return jsonArray account
     * @return string message
     */

    public function update($account_id) {
        $input = Input::all();
        $message = 'Account Successfully Updated';
        $user = Auth::User();

这是路线宣言:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Route::group(array('prefix' => 'api/v2', 'namespace' => 'API\V2', 'middleware' => 'auth'), function()
{
    Route::resource('challenges', 'ChallengeControllerV2', ['only'=> ['index','store','update','destroy']]);
    Route::resource('groups', 'GroupControllerV2');
    Route::resource('account', 'AccountControllerV2');

正在向正确的路径发出呼叫。知道为什么我会得到似乎不合逻辑的反应吗?除了显示的内容之外,没有附加到控制器的其他中间件/过滤器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-21 17:00:43

结果是,在Laravel 5中,如果您没有指定路由上可用的资源,它将假设它们都在那里(与Laravel 4中的情况不同,在那里它检查哪些资源在所有控制器中可用)。所以我不得不像这样改变路线。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Route::resource('account', 'AccountControllerV2', ['only'=> ['index','update','destroy']]);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29785538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文