具备一定的路由知识后的目标当然是Controller控制器了。
引入Controller控制器的概念是因为在实际项目开发中,路由不会那么简单,每一条路由都会有几十行代码。
而我们之前所了解的路由设置写法是函数必包写法:
Route::get('/', function () {
return view('welcome');
});
如果每一条路由以这种形式的写法去写,后面代码将会非常乱,不便于维护修改。
所以在这里我们引入Controller控制器。
接下来输入命令:
php artisan make:controller SiteController
创建SiteController这样的控制器文件,位于:
我们打开这个SiteController.php文件可以看到代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SiteController extends Controller
{
//
}
我们在//的位置生成一个方法:
public function index()
{
return view('welcome');
}
这时候我们的SiteController.php的代码是:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SiteController extends Controller
{
public function index()
{
return view('welcome');
}
}
我们回到我们的web.php路由文件:
<?php
Route::get('/', function () {
return view('welcome');
});
我们把get方法的第二句function(){return view('welcome');}改成'SiteController@index'
变成这样:
Route::get('/','SiteController@index');
现在打开Chrome访问http://testdemo.test/会发现看到了如之前那样的首页。
这说明我们对路由的改造方式是正确的,这就实现了我们把重要的逻辑处理任务交给了控制器实现。
这样就做到了代码分离,对项目的后期维护是非常有好处的。
在创建控制器的php artisan语句里,可以指定文件夹生成控制器,命令如:
php artisan make:controller Site/SiteController
但是在web.php里面的get语句所指向的控制器逻辑处理语句应该写成'Site\SiteController@index'
系列文章: