当前位置:Gxlcms > PHP教程 > php框架laravel学习三(基本功能)

php框架laravel学习三(基本功能)

时间:2021-07-01 10:21:17 帮助过:20人阅读

一、路由

路由其实就是浏览器里用来发http请求的指令,很多api的功能实际上就是通过URL来发送请求的。

http请求方式和响应是基础课,但是内容不少,要先研究好。

Laravel的路由和其他框架有所不同,需要手动逐个定制,好处在于功能强大,灵活,易于管理。

3种基本方式

第一种
就是Route::get(‘路径’, function(){…});这种形式,你可以根据需要把get换成post, put, delete等各种请求方式;这种写法最常见,也是最推荐的;

路由后面可以用闭包(匿名的函数)直接执行一段代码,这个是很多框架没有的,实际中不太可能把业务代码写到这个小小的闭包中,而是放到控制器中,因此最常见的写法是Route::get(‘路径’, xxxController@action);

路由的闭包函数最多的用处是用来测试某个功能或代码,即写即用,非常方便,我一般都会保留一个Route::get(‘test’, function(){…});做测试。

项目中往往路由很多,一个一个写有些人觉得慢了。有些CRUD是非常标准化的,于是就有了所谓的Restful路由(控制器)。

第二种:
Route::resource(‘posts’,’PostsController’);

写一个这样的路由,其实生成7个带路由名称的路由,这7个路由的路径形式是按照restful标准来制定的,所以有又叫做rest路由;但这个路由有个限制,就是在对应的控制器中,除了rest对应的7个方法外,其他方法如果要访问,要在Restful路由前面定义一个路由访问它。

第三种:
叫做控制路由,又叫隐式路由:
Route::controller(‘foo’, ‘FooController’);

这种写法很灵活,用魔术方法在方法名上设定http请求方式,这对于一些api式的请求很方便。

给隐式路由起名字需要注意,因为它不是逐个写路由的,方法如下:

Route::controller('users', 'UserController', [

    'anyLogin' => 'user.login',

]);

前面是方法名,后面是路由名称;

路由名称
话说回来,给路由命名有什么用呢?有用,因为路由(url)会在大量的视图文件中使用,有了路由名称,就可以解耦,可以任意修改url,而不会影响视图中的url;

路由参数
我们通常说的路由参数,一般看起来像这样index.php?user=ooo&psw=xxx; 但在Laravel看来,这种明文的方式比较丑且不安全。所以它的写法成了这样:

Route::get('user/{name}', function($name)
{//可以直接使用$name
})

这个参数值如果是字符串,不能与其他路由名称一样,系统会优先路由,这样就取不到值了。
关于取值这块,首先其实是可以直接传值,另外也可以通过对象方法取值,官网说明比较坑,route?>input(id)

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了php框架laravel学习 三 (基本功能),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

人气教程排行