我更新我的Laravel 3應用Laravel 4時,我打這個問題...路由到子控制器Laravel不工作4
路線我曾嘗試:
Route::get('backend/login', 'backend/[email protected]');
Route::get('backend/login', '[email protected]');
我更新我的Laravel 3應用Laravel 4時,我打這個問題...路由到子控制器Laravel不工作4
路線我曾嘗試:
Route::get('backend/login', 'backend/[email protected]');
Route::get('backend/login', '[email protected]');
目前,在Laravel 4 Beta 1中,你可以「只有?」使用名稱空間。
對於爲例這裏在你的控制器文件:應用程序/控制器/後端/ UserController.php
<?php namespace Controllers\Backend;
use Illuminate\Routing\Controllers\Controller;
class UserController extends Controller {
// Note extends Controller and not BaseController
// Your stuff
}
?>
所以後,在文件中:應用程序/ routes.php文件:
<?php
Route::get('backend/login', 'Controllers\Backend\[email protected]');
我不不知道是否更好的方法,但在這裏工作。編輯& dump-autoload「composer.json」似乎不起作用。
如果有人能改善這一點,他會讓我的一天! :)
仍然不工作: Route:Route :: get('backend/login','Controllers \ Backend \ UserController @ login'); 類(在app/controllers/backend/UserController.php中):<?php namespace Controllers \ Backend; 使用Illuminate \ Routing \ Controllers \ Controller; 類UserController的擴展BaseController { 錯誤:ReflectionException:類控制器\後端\ UserController中不存在 –
OK,就像我說的,照顧: ' 「類UserController的擴展控制器」' 不 「「類UserController中擴展BaseController「' –
然後我得到同樣的錯誤。 –
我建議做
Route::group(array('prefix' => 'backend'), function() {
// Responds to Request::root() . '/backend/user'
Route::resource('login', 'UserController');
});
在這裏看到的更多信息
Laravel 4 nested resource controllers Route::resource('admin/photo', 'PhotoController'); not working
幾小時前我有類似的問題,不得不玩一點點才能使它工作。
路線:
Route::group(array('prefix' => 'admin'), function() {
Route::resource('/', 'admin\DashboardController');
});
在 「控制器/ admin」 的我把DashboardController:
namespace admin;
use Illuminate\Support\Facades\View;
class DashboardController extends \BaseController {
public function index()
{
return View::make('admin/dashboard');
}
}
那做了Laravel 4招希望你覺得它有用不夠。 :)
這非常有幫助。你節省了一天的時間。 – akbarbin
我在app/controllers目錄管理控制器
class AdminController extends BaseController {
/**.
* @return \AdminController
*/
public function __construct()
{
}
}
現在我已經在控制器的文件夾,即應用程序/控制器/管理文件夾名爲admin,我有另一個控制器有一個名爲AdminDashboardController.php
class AdminDashboardController extends AdminController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function getIndex()
{
return View::make('admin/dashboard');
}
}
,最後我Route.php文件
Route::group(array('prefix' => 'admin'), function()
{
# Admin Dashboard
Route::controller('/', 'AdminDashboardController');
});
希望這幫助.. :-)
如這裏解釋的,Laravel 4.1,您可以指定命名空間要在一組路由的使用,因爲你可以在這裏看到:http://www.laravel-tricks.com/tricks/route-group-namespacing
我一直在使用它,它很好,它可以幫助你保持你的代碼更清晰,更易於理解。試一試!
如果你是要去使用Laravel 4,也許你應該看看這個:您可以指定命名空間要在一組路由的使用,因爲你可以在這裏看到:http://www.laravel-tricks.com/tricks/route-group-namespacing
所以你的樣品中:
Route::group(array('prefix' => 'backend', 'namespace' => 'backend'), function()
{
Route::get('login', '[email protected]');
});
它的工作原理就像一個魅力:)
我一直用它了,而且是相當不錯的,它可以幫助你保持你的代碼更清潔和更容易理解。試一試!
你有沒有更新你的自動加載文件? (composer dump-autoload) –
是的,自動加載文件已更新,但不能解決問題。 –
你剛剛得到404還是會得到更有用的錯誤?如果您遇到錯誤,您可以在此張貼嗎? –