一、路由
路由其实就是浏览器里用来发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式的请求很方便。
给隐式路由起名字需要注意,因为它不是逐个写路由的,方法如下:
<code>Route::controller(<span>'users'</span>, <span>'UserController'</span>, [ <span>'anyLogin'</span> => <span>'user.login'</span>, ]);</code>
前面是方法名,后面是路由名称;
路由名称
话说回来,给路由命名有什么用呢?有用,因为路由(url)会在大量的视图文件中使用,有了路由名称,就可以解耦,可以任意修改url,而不会影响视图中的url;
路由参数
我们通常说的路由参数,一般看起来像这样index.php?user=ooo&psw=xxx; 但在Laravel看来,这种明文的方式比较丑且不安全。所以它的写法成了这样:
<code>Route::get(<span>'user/{name}'</span>, <span><span>function</span><span>(<span>$name</span>)</span> {</span><span>//可以直接使用$name</span> })</code>
这个参数值如果是字符串,不能与其他路由名称一样,系统会优先路由,这样就取不到值了。
关于取值这块,首先其实是可以直接传值,另外也可以通过对象方法取值,官网说明比较坑,
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了php框架laravel学习 三 (基本功能),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。