路由能够分发请求;
路由中还能够引入 html 页面;
咱们能够在 route/web.php 中搞定一切了;
可是若是把业务逻辑都写入到路由中;
那路由将庞大的难以维护;
因而控制器就有了很明显的存在价值;
把业务逻辑写在控制器中;
路由只负责转发请求到指定的控制器便可;php
咱们能够直接使用 Laravel 内置的命令生成不少代码,例如控制器;html
artisan 就是 laravel 的命令行接口;
就是根目录下的 artisan 文件;laravel
下面来使用命令建立一个控制器web
php artisan make:controller ArticleController
运行完成后会生成一个 app/Http/Controllers/ArticleController.php 文件app
接下来就须要在新建立的控制器中写各类方法,可是,只要在刚刚的命令中加入一个参数就能够自动生成一些方法框架
php artisan make:controller ArticleController --resource
若是直接运行的话是会报错的;
提示 Controller already exists!
;
由于咱们刚已经建立过 ArticleController了;
因此咱们须要先把 app/Http/Controllers/ArticleController.php 文件删掉再运行;
那么会再次生成一个 app/Http/Controllers/ArticleController.php 文件;spa
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ArticleController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }
增删改查的方法都定义好了;
连注释都给写好了;命令行
这实际上是按 RESTful 规范生成的格式;
除了 GET POST 它还包含了一大堆请求方式;
PUT 、 PATCH 、 DELETE 、HEAD 、OPTIONS;
也就是说 Route:: 后面还能够跟上面这些方法;code
Route::put('article', function () { return view('article'); });
laravel 是一个现代化框架;
它对命令行有着很是好的支持;
artisan 就是 laravel 的命令行接口;
就是根目录下的 artisan 文件;orm
咱们能够把它理解为命令行级的单入口文件;
跟 index.php 文件的使命同样;
全部的命令行都从它这走;
因此若是想使用命令行;
就须要 cd 到项目的根目录下;
或者手动指定一长串路径;
在命令行中以 php 开头意思是用 php 来执行某个文件;php index.php
意思就是使用 php 的命令行模式运行 index.php ;
命令行下是能够不须要文件后缀就能识别的;
你能够建立个 test 的文本文件,而后在里面写一些php代码,使用命令行 php test 也是能够正常运行的;
因此根目录下的 artisan 文件并无带上 .php ;
命令行主要有两个方向的应用;
第一是生成文件;
第二是执行任务;
在上面生成的控制器方法 index 中写入以下代码
而后写一个路由绑定这个控制器方法,在 routes/web.php 中添加以下代码
Route::get('article/index', 'ArticleController@index');
打开连接
http://127.0.0.1:8000/article/index