当前位置:首页 > CMS教程 > 其它CMS > 列表

Laravel 框架控制器 Controller原理与用法实例分析

发布:smiling 来源: PHP粉丝网  添加日期:2022-02-28 09:25:40 浏览: 评论:0 

这篇文章主要介绍了Laravel 框架控制器 Controller原理与用法,结合实例形式分析了Laravel 控制器 Controller基本概念、原理、用法及操作注意事项,需要的朋友可以参考下。

本文实例讲述了Laravel 框架控制器 Controller原理与用法,分享给大家供大家参考,具体如下:

一、控制器存在的意义

路由可以分发请求;

路由中还可以引入 html 页面;

我们可以在 route/web.php 中搞定一切了;

但是如果把业务逻辑都写入到路由中;

那路由将庞大的难以维护;

于是控制器就有了很明显的存在价值;

把业务逻辑写在控制器中;

路由只负责转发请求到指定的控制器即可;

二、创建控制器

我们可以直接使用 Laravel 内置的命令生成很多代码,例如控制器;

artisan 就是 laravel 的命令行接口;

就是根目录下的 artisan 文件;

Laravel 框架控制器 Controller原理与用法实例分析

下面来使用命令创建一个控制器

php artisan make:controller ArticleController

运行完成后会生成一个 app/Http/Controllers/ArticleController.php 文件

Laravel 框架控制器 Controller原理与用法实例分析

接下来就需要在新创建的控制器中写各种方法,但是,只要在刚刚的命令中加入一个参数就可以自动生成一些方法

php artisan make:controller ArticleController --resource

如果直接运行的话是会报错的;

提示 Controller already exists!;

因为我们刚已经创建过 ArticleController了;

所以我们需要先把 app/Http/Controllers/ArticleController.php 文件删掉再运行;

那么会再次生成一个 app/Http/Controllers/ArticleController.php 文件;

  1. <?php 
  2.  
  3. namespace App\Http\Controllers; 
  4.  
  5. use Illuminate\Http\Request; 
  6.  
  7. class ArticleController extends Controller 
  8.   /** 
  9.    * Display a listing of the resource. 
  10.    * 
  11.    * @return \Illuminate\Http\Response 
  12.    */ 
  13.   public function index() 
  14.   { 
  15.     // 
  16.   } 
  17.  
  18.   /** 
  19.    * Show the form for creating a new resource. 
  20.    * 
  21.    * @return \Illuminate\Http\Response 
  22.    */ 
  23.   public function create() 
  24.   { 
  25.     // 
  26.   } 
  27.  
  28.   /** 
  29.    * Store a newly created resource in storage. 
  30.    * 
  31.    * @param \Illuminate\Http\Request $request 
  32.    * @return \Illuminate\Http\Response 
  33.    */ 
  34.   public function store(Request $request
  35.   { 
  36.     // 
  37.   } 
  38.  
  39.   /** 
  40.    * Display the specified resource. 
  41.    * 
  42.    * @param int $id 
  43.    * @return \Illuminate\Http\Response 
  44.    */ 
  45.   public function show($id
  46.   { 
  47.     // 
  48.   } 
  49.  
  50.   /** 
  51.    * Show the form for editing the specified resource. 
  52.    * 
  53.    * @param int $id 
  54.    * @return \Illuminate\Http\Response 
  55.    */ 
  56.   public function edit($id
  57.   { 
  58.     // 
  59.   } 
  60.  
  61.   /** 
  62.    * Update the specified resource in storage. 
  63.    * 
  64.    * @param \Illuminate\Http\Request $request 
  65.    * @param int $id 
  66.    * @return \Illuminate\Http\Response 
  67.    */ 
  68.   public function update(Request $request$id
  69.   { 
  70.     // 
  71.   } 
  72.  
  73.   /** 
  74.    * Remove the specified resource from storage. 
  75.    * 
  76.    * @param int $id 
  77.    * @return \Illuminate\Http\Response 
  78.    */ 
  79.   public function destroy($id
  80.   { 
  81.     // 
  82.   } 

增删改查的方法都定义好了;

连注释都给写好了;

这其实是按 RESTful 规范生成的格式;

除了 GET POST 它还包含了一大堆请求方式;

PUT 、 PATCH 、 DELETE 、HEAD 、OPTIONS;

也就是说 Route:: 后面还可以跟上面这些方法;

  1. Route::put('article'function () { 
  2.   return view('article'); 
  3. }); 

三、什么是 artisan 

laravel 是一个现代化框架;

它对命令行有着非常好的支持;

artisan 就是 laravel 的命令行接口;

就是根目录下的 artisan 文件;

我们可以把它理解为命令行级的单入口文件;

跟 index.php 文件的使命一样;

所有的命令行都从它这走;

所以如果想使用命令行;

就需要 cd 到项目的根目录下;

或者手动指定一长串路径;

Laravel 框架控制器 Controller原理与用法实例分析

在命令行中以 php 开头意思是用 php 来执行某个文件;

php index.php 意思就是使用 php 的命令行模式运行 index.php ;

命令行下是可以不需要文件后缀就能识别的;

你可以创建个 test 的文本文件,然后在里面写一些php代码,使用命令行 php test 也是可以正常运行的;

所以根目录下的 artisan 文件并没有带上 .php ;

命令行主要有两个方向的应用;

第一是生成文件;

第二是执行任务;

四、路由绑定控制器方法

在上面生成的控制器方法 index 中写入如下代码

Laravel 框架控制器 Controller原理与用法实例分析

然后写一个路由绑定这个控制器方法,在  routes/web.php 中添加如下代码

Route::get('article/index', 'ArticleController@index');

打开链接

http://127.0.0.1:8000/article/index

Laravel 框架控制器 Controller原理与用法实例分析

Tags: Laravel框架控制器 Controller

分享到: