-->

PHP资讯

您的当前位置:首页 > 资讯 > Laravel框架

laravel整理-3控制器controller

2019-06-23 23:41:14  来源:admin 点击:742

控制器定义规则
在laravel控制器的定义,是有一定的规则。如果你习惯了tp5的定义方式那么你可能就需要注意因为laravel对于控制器的定义规范是需要跟Controller后缀的,控制器是方法在app/Http/Controller下 首字母大写跟后缀
image.png
控制器基础定义

通过artisan命令创建我们所需要的控制器,

php artisan make:controller HelloController

php artisan make:controller Pc/HelloController,(在目录下创建), 

当命令在laravel项目的根目录执行成功之后就会在App\Http\Controllers下创建我们所需要的控制器.

image.png

比如:我们就可能会有一个Admin的模块。在里面就存在对应的控制器AdminController。现在如果说我们想要访问他,那么我们就有两种方式。

配置不同模块的路由

当然实际上比较合适的是我们可以根据不同的模块定义对应模块的单独的路由文件,配置这个模块我们期望的一些参数,中间件等

image.png

这样我们就可以灵活的对于需要的模块定义不同的中间件。 而我们通过命令artisan所创建的控制器,通常是会继承与App\Http\Controllers\Controller 。但是实际上我们是可以不用继承与这个类。只是这样我们可能就不能够很方便的使用middleware,validate和dispatch方法。 

image.png

选择创建出一个基类的控制器,把我们一些常用的方法写在这个控制器中,让子类继承并实现里面的方法,而命令创建的时候就会继承与这个控制器,即可实现其方法。 但是如果对于大项项目而言我们就会可能会根据模块分层而创建出不同的基类的控制器,并相继承

image.png

单行为控制器

在项目中有些时候,在一些特殊时候控制器只需要处理一个事情,而这种情况我们可以称之为单个行为控制器。 比如我们可以对于一些用户访问之后出现某些异常,我们可以放到这个控制器中处理,这只是一个比喻。 我们可以通过artisan命令创建出所需要的单行为的控制器php artisan make:controller Only\SlipController --invokable 

image.png

资源控制器

对于资源控制器其实我们这里可以理解为restful的风格,所以在这讲解资源控制器的时候首先我们需要先理解restful。 说个题外知识点:restful与api 是有区别的 restful是一种思想,感念。而api是接口开发 restful:简单一点的解释,就是我们可以根据用用户请求的url来判断用户的操作。我们可以根据用户的请求方式 get, post,delete 以及 user\info这种方式来判断用户的请求操作。 注意:这是一种设计模式而不是规定 我们以实际操作为基础解释一下。 比如:我们需要对于用户的信息进行 修改,删除或者新增这些操作。这对于这些操作设计接口。 我们可以创建出叫 UserController的控制器。

传统的方式的url: xxx.com/user/findUser xxx.com/user/addUser xxx.com/user/deleteUser xxx.com/user/updateUser 而现在我们采用restful风格的方式

 xxx.com/user   get 请求 查询

 xxx.com/user   put 请求 更新

xxx.com/user   delete 请求 删除 

这样对比之下就会发现restful风格的请求就比较简洁,而我们只需要根据请求的方式来判断我们所实际请求的方法

image.png

创建控制器

php artisan make:controller Api\UserController –-resource 我们可以通过这个命令创建

image.png

这是我们所创建出来的User资源控制器。 在laravel中对于http的请求方式中使用any,match可以定义一个控制器多种请求的方式。 不过资源控制器的路由是; Route::resource(‘user’, ‘UserController’); 我们这样定义之后就可以不用对于控制器中其他的方法定义对应的路由。 访问的对应的路由方式。 我们也可以通过在给这些资源做一些限制。 Only:只有定义的方法才可以访问。 except:除定义的方法外都可以访问

image.png

crsf保护

在模板中使用:

image.png

在JavaScript中使用crsf 

image.png

请求Request的引入用

通过依赖注入的方式吧Request请求对象注入到$request中。然后我们就可以直接通过$request来接收请求参数。 $request->input(‘username’); $request->input(‘password’); 而我们在控制器中引用的时候就可以直接 use Request; 我们可以直接request()的方式就可以获取到Request的 请求对象,然后调用 其中的方法。

image.png

请求Request基础使用
image.png
Response响应

laravel框架提供了很多种的访问方式,可以返回一个字符串也可以返回数组,而laravel会自动把这些参数内容进行转化为json格式进行输出 Route::get(‘/’ function(){ return ‘hello world’; }); Route::get(‘/’, function(){ return [1,2,3,4,5]; }); 在控制器中也是同样的操作。 这里我们主要会使用到Illuminate\Http\Response类做处理。 同样也可以返回的时候添加header信息 tupian7也可以使用路由名进行重定向 redirect()->route(‘text’); redirect()->route(‘text’, [‘id’ => 1]); redirect()->action(‘TestController@index’); redirect()->away(‘https://www.google.com’); 重定向外部域 redirect()->json() 

image.png

相关文章更多 >

© 2024版权所有 水水网

电话:171780793