1. laravel 控制器在app/Http/Controllers/ 下,你会看到里面有一个Controller.php ,之后我们创建的控制器都是继承这个总控制器的、创建控制器只需要在这里面添加一个文件 比如 IndexController.php 这个文件,在里面添加:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; class AdminController extends Controller{ }
即可,然后举个栗子:添加 index方法
public function index(){ return view('welcome'); }
修改添加路由 Routes.php:
Route::get('/test','IndexController@index');
'IndexController' 这个是控制器的名称、艾特 后面的即控制器里面的 index 方法、 然后在浏览器地址栏后添加 /test 即可看到同样的欢迎页面
2. 创建控制器,比较方便的方法就是 使用artisan命令:(如何你没有安装composer 请查看 安装篇)
命令行cmd进入到laravel项目的主目录,输入:
php artisan make:controller AdminController
在次查看Controllers 下的控制器就会 多了一个AdminController 控制器,而且里面的引用和继承关系都写好了。还是非常方便的、查看: Artisan命令大全 。
3. 我想在Controllers下的文件夹里面再创建一个文件夹里面再创建一个控制器。那我该怎样做?
首先例如先创建一个Admin 的文件夹 并把上面创建好的 IndexController.php 剪切到里面
现在去浏览器运行的时候它会提示 Class App\Http\Controllers\IndexController does not exist 这个IndexController 控制器不存在,那我先去把路由的引用的控制器路径改一下:
Route::get('/test','Admin\IndexController@index');
注意 正反 斜杠。
再次运行:Class App\Http\Controllers\Admin\IndexController does not exist 报错变了、提示Admin\IndexController 这个控制器不存在。打开Admin/IndexController.php 修改为以下内容:
<?php namespace App\Http\Controllers\Admin;//修改为当前文件的位置 use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller;//引用Controllers下的Controller总控制器,若不应用会报错提示Controller控制器不存在 class IndexController extends Controller { // public function index(){ return '这是后台'; } }
然后 注意路径的大小写,斜杠的正反。就是因为引用控制器的时候 APP 这个不小心都大写了。找了半个小时。真是日了狗了、
再次运行,就正常啦: 若你的不正常的话,看看路由的地方改了没。