簡體   English   中英

嵌套laravel 4中找不到控制器方法

[英]Controller Method not found in nesting laravel 4

我是laravel的新手,但遇到錯誤,並不知道如何解決。 我問這條路線時出現錯誤“找不到控制器方法”:/ projet / 6 / note

我的routes.php

Route::controller('projet.note', 'NoteController');
Route::resource('/eleves', 'StudentController');
Route::controller('/auth', 'AuthController');
Route::resource('/user', 'UserController');
Route::resource('/projet', 'ProjectController');
Route::post('/eleves/search', 'StudentController@postSearch');
Route::resource('/classe', 'ClasseController');
Route::controller('/', 'HomeController');

我試圖輸入php artisan路由來查看路由是否正常工作,而她卻沒有。 然后,我嘗試將控制器更改為關於NoteController的行中的資源,路由在那里,但是當我繼續執行鏈接時,出現相同的錯誤。

然后我想如果沒有我的NoteController是一種資源,我將無法執行“ projet / note”? 這是一個問題,因為我需要將NoteController嵌套到ProjetController中。

我在NoteController中唯一的動作

public function getIndex($id)
{
    return View::make('note.noter')
        ->with('project', Project::find($id))
    ;
}

謝謝

我希望我理解你的問題對。 這是我能想到的最好的解決方案:

Route::any('projet/{id}/note/{action?}', function($id, $action = 'index'){
    $controller = App::make('NoteController');
    $action = strtolower($_SERVER['REQUEST_METHOD']).studly_case($action);
    if(method_exists($controller, $action)){
        return $controller->callAction($action, [$id]);
    }
});

這基本上與Route::controller做一些類似的事情。 首先,我們創建一個控制器實例,然后根據請求方法和路徑中的第二個參數構建動作名稱,最后,調用該動作(如果存在)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM