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

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

一、控制器存在的意义

路由可以分发请求;

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

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

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

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

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

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

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

二、创建控制器

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

artisan 就是 laravel 的命令行接口;

就是根目录下的 artisan 文件;

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

php artisan make:controller ArticleController

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

9c28cf3802eb2392cf5e2780a45f3c81.png

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

php artisan make:controller ArticleController --resource

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

提示 Controller already exists!;

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

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

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

namespace AppHttpControllers;

use IlluminateHttpRequest;

class ArticleController extends Controller

{

/**

* Display a listing of the resource.

*

* @return IlluminateHttpResponse

*/

public function index()

{

//

}

/**

* Show the form for creating a new resource.

*

* @return IlluminateHttpResponse

*/

public function create()

{

//

}

/**

* Store a newly created resource in storage.

*

* @param IlluminateHttpRequest $request

* @return IlluminateHttpResponse

*/

public function store(Request $request)

{

//

}

/**

* Display the specified resource.

*

* @param int $id

* @return IlluminateHttpResponse

*/

public function show($id)

{

//

}

/**

* Show the form for editing the specified resource.

*

* @param int $id

* @return IlluminateHttpResponse

*/

public function edit($id)

{

//

}

/**

* Update the specified resource in storage.

*

* @param IlluminateHttpRequest $request

* @param int $id

* @return IlluminateHttpResponse

*/

public function update(Request $request, $id)

{

//

}

/**

* Remove the specified resource from storage.

*

* @param int $id

* @return IlluminateHttpResponse

*/

public function destroy($id)

{

//

}

}

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

连注释都给写好了;

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

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

PUT 、 PATCH 、 DELETE 、HEAD 、OPTIONS;

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

Route::put("article", function () {

return view("article");

});

三、什么是 artisan

laravel 是一个现代化框架;

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

artisan 就是 laravel 的命令行接口;

就是根目录下的 artisan 文件;

dc279f2eeac3a7dff72686182be37aa1.png

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

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

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

所以如果想使用命令行;

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

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

95cdd892cf43a3adeace5d6ddf1ccd43.png

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

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

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

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

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

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

第一是生成文件;

第二是执行任务;

四、路由绑定控制器方法

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

61492791375ca71335abb409a96e9917.png

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

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

打开链接

http://127.0.0.1:8000/article/index

a4d894d7605f43d530cf88df2bea09e1.png

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值