今天研究了在Laravel框架中的控制器中添加后臺的文件夾.發(fā)現(xiàn)了一些小的規(guī)律,拿來和大家分享一下吧. 通常情況下,我們是直接在controllers文件夾中添加我們的控制器,然后再routes.php 路由表中尋找相應的控制器和action進行處理.但是現(xiàn)在有個問題,如果我們的前臺和后臺同在一個項目中,也就是說前臺和后臺的控制器會在一塊.當然不是沒有辦法進行區(qū)分.我們可以在控制器前面加上Front,Admin等標記來分別前臺控制器和后臺控制. 這里我給大家提供一種方法來將前后臺的控制器進行分離. 首先我們在controllers文件夾中建立一個admin文件夾. 第一種方法:直接在后臺建立控制器,比如AdminController.php 里面正常的寫上我們的內(nèi)容. 在路由表中, Route::get('admin','AdminController@index'); 我們發(fā)現(xiàn)程序報錯,說無法找到控制器AdminController. 我們打開命令行工具,進入到該項目的更目錄中,也就是artisan,composer.json所在的目錄中, 運行命令 composer dumpautoload 或者 composer dump-autoload 這是對自動加載進行優(yōu)化. 我們運行完命令之后,進入vendor目錄的composer目錄中, 我們查看一下我們的autoload_classmap.php文件,發(fā)現(xiàn)里面多了個AdminController的一條記錄. 對了,然后我們刷新一下瀏覽器,就能夠看到該后臺控制器的內(nèi)容了. 但是這個有個缺點,就是每次添加新的控制器的時候都必須要運行一下這個命令才行.. 還有一點需要注意的是:如果你的后臺文件夾中出現(xiàn)了和前臺相同的控制器的時候,這是的程序會報錯. 提示后臺和前臺有個控制器名字相沖突. 這里的解決方案是在后臺使用名字空間進行處理. 比如我們我的后臺同樣有個IndexController控制器 <?PHP namespace Controllers\Admin; class IndexController extends \BaseController{ public function index(){ } } ?> 這里還是要注意一點了,當使用名字空間之后,我們在里面使用的所有靜態(tài)類都默認是當前名字空間的類.所以有時我們需要使用use View; Use ...等之類的名字空間. 同時在路由表中我們同樣要使用 Controllers\Admin\IndexController@index 這樣的控制器來處理請求. 好了,這就是我學到的內(nèi)容,拿來和大家分享分享. Persistence makes life valuable. Best Wishes.
|