laravel基础课程---3、路由(Laravel中的常见路由有哪几种)
laravel基础课程---3、路由(Laravel中的常见路由有哪几种)
一、总结
一句话总结:
6种:post,get,put,patch,delete,options
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
1、Lararel的CSRF 保护 保护表单安全措施是怎么回事?
作用:Laravel 提供简单的方法保护你的应用不受到 跨站请求伪造 (CSRF) 攻击。跨站请求伪造是一种恶意的攻击,它利用已通过身份验证的用户身份来运行未经授权的命令。
实现:表单中添加如下这句好:{{csrf_field()}}。详见代码
实质:就是在form表单中添加了一个token值; input type="hidden" name="_token" value="SqlDhf...一串随机字符串"
原理是:检验表单的token值是否合法,合法就通过,否则就不通过
<form method="POST" action="/profile">
{{ csrf_field() }}
...
</form>
2、路由中的post请求方式如何书写?
就是post方法:Route::post('check',"LoginController@check");
3、路由中的put请求如何实现?
路由写法:Route的put方法:Route::put('put','LoginController@put');
控制器写法:就是基础控制器的写法
请求页面设置请求类型为put:input type="hidden" name="_method" value="put"
路由中书写
// put请求
Route::get('putWeb','LoginController@putWeb');
// put的处理页面
Route::put('put','LoginController@put');
控制器书写
// put请求页面
public function putWeb(){
return view('putWeb');
}
// put请求处理页面
public function put(Request $request){
dd($request->input());
}
请求页面书写
<form action="put" method="post">
<p>
{{csrf_field()}} <input type="hidden" name="_method" value="put">
User:
<input type="text" name="user" id="">
</p>
</form>
4、Laravel页面中如何一个页面实现多种请求方式(我又可以get方式给页面数据,用户又可以搜索框来post请求)?
match(指定请求):Route::match(['get','post'],'/',"IndexController@index");
控制器代码:判断用户是否为post请求,如果是就输出用户搜索的,否则输出 正常显示到页面的数据
any(全部请求):Route::any('/',"IndexController@index");
5、Laravel资源路由的使用实例及实现(实际项目用的比较多)?
实例:后台拥有很多模块,用户模块、管理模块等(增、删、改、查):这样直接在路由中写非常多非常麻烦
Route::get('user/index','UserController@index');
Route::get('user/add','UserController@add');
Route::get('user/edit','UserController@edit');
Route::post('user/insert','UserController@insert');
Route::post('user/update','UserController@update');
Route::get('user/del','UserController@del');
实现:resource方法:Route::resource('Admin','IndexController');
| GET|HEAD | Admin | Admin.index | App\Http\Controllers\IndexController@index | web | #展示页面
| POST | Admin | Admin.store | App\Http\Controllers\IndexController@store | web | #添加操作
| GET|HEAD | Admin/create | Admin.create | App\Http\Controllers\IndexController@create | web | #添加页面
| DELETE | Admin/{Admin} | Admin.destroy | App\Http\Controllers\IndexController@destroy | web | #删除操作
| PUT|PATCH | Admin/{Admin} | Admin.update |
App\Http\Controllers\IndexController@update | web | #更新操作
| GET|HEAD | Admin/{Admin} | Admin.show | App\Http\Controllers\IndexController@show | web |
| GET|HEAD | Admin/{Admin}/edit | Admin.edit | App\Http\Controllers\IndexController@edit | web | #修改页面
| GET|HEAD | api/user | | Closure | api,auth:api |
6、路由如何带参数和多个参数?
大括号里参数:Route::get('user/del/{id}',function($id){ echo $id; });
多个参数:Route::get('UserInfo/{name}/{sex}',function($name,$sex){ echo $name; echo $sex; });
可能带或不可能带的参数:问号+默认值:Route::get('user/edit/{id?}',function($id="默认值"){ echo $id; });:带默认值保证不带参数的时候有值
7、控制器中如何访问路由中所带的参数?
直接传入参数,$_GET里面没有值
Route::get('UserInfo/{name}/{sex}',"IndexController@UserInfo");
// 新建UserInfo
public function UserInfo($a,$sex1){
var_dump($a);
var_dump($sex1);
}
8、命名路由是什么以及作用?
是什么:就是给路由命名
实现:Route::get('abc',"IndexController@abc")->name('one');
作用:获取别名的url地址:控制器中:route('one');可以到以one为别名的控制器中
作用:通过命名路由实现重定向(实现重定向的一种方式):控制器中:return redirect()->route('one');
9、路由组命名空间的作用以及实现?
实现前后台控制器分离:需要在控制器目录下新建Admin目录和Home目录 在目录中新建控制器
在Route的group方法中指定命名空间:Route::group(['namespace'=>'Admin'],function(){
在Admin中的控制器要写好命名空间,并且继承控制器要use到控制器
//路由中代码
Route::group(['namespace'=>'Admin'],function(){
Route::get('admin','IndexController@index');
Route::get('admin/user','UserController@index');
Route::get('admin/goods','GoodsController@index');
}); Route::group(['namespace'=>'Home'],function(){
Route::get('/','IndexController@index');
});
#需要在控制器目录下新建Admin目录和Home目录 在目录中新建控制器
#注意 需要修改命名空间 控制器中代码
<?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use DB; use App\Http\Controllers\Controller; class UserController extends Controller
{
//index 方法 public function index(){ echo "我是后台控制器User";
} }
二、内容在总结中
laravel基础课程---3、路由(Laravel中的常见路由有哪几种)的更多相关文章
- laravel基础课程---2、Laravel配置文件、路由及php artisan(php artisan是什么)
laravel基础课程---2.Laravel配置文件.路由及php artisan(php artisan是什么) 一.总结 一句话总结: PHP工具匠:php artisan,其实本身就是一些PH ...
- laravel基础课程---8、laravel响应和视图(响应是什么)
laravel基础课程---8.laravel响应和视图(响应是什么) 一.总结 一句话总结: 就是向请求返回的响应数据(一般为html(视图),当然也可以是变量值):所有的路由及控制器必须返回某个类 ...
- laravel基础课程---4、Laravel基础网站结构搭建
laravel基础课程---4.Laravel基础网站结构搭建 一.总结 一句话总结: 1.搭建网站前后台路由:在路由组Route::group()中设置好命名空间和前缀 2.搭建控制器:比如1)新建 ...
- laravel基础课程---1、laravel安装及基础介绍(laravel如何安装)
laravel基础课程---1.laravel安装及基础介绍(laravel如何安装) 一.总结 一句话总结: [修改composer镜像地址].[明确laravel的安装要求].[安装指定版本的la ...
- laravel基础课程---5、路由复习(路由作用)
laravel基础课程---5.路由复习(路由作用) 一.总结 一句话总结: 有利于百度收录,及SEO优化 1.路由书写 (D:\laravel\yzmedu\yzm2\routes\web.php) ...
- laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)
laravel基础课程---15.分页及验证码(lavarel分页效果如何实现) 一.总结 一句话总结: 数据库的paginate方法:$data=\DB::table("user" ...
- laravel基础课程---12、lavarel的ajax操作2(lavarel的ajax使用总结)
laravel基础课程---12.lavarel的ajax操作2(lavarel的ajax使用总结) 一.总结 一句话总结: 比较简单:就是js请求ajax,然后控制器获取请求参数,返回数据即可 1. ...
- laravel基础课程---11、lavarel的ajax操作(ajax优劣势是什么)
laravel基础课程---11.lavarel的ajax操作(ajax优劣势是什么) 一.总结 一句话总结: 优势:用户友好度:异步通信,不会频繁刷新页面,用户友好度比较高 优势:减轻数据库压力 缺 ...
- laravel基础课程---10、数据库基本操作(如何使用数据库)
laravel基础课程---10.数据库基本操作(如何使用数据库) 一.总结 一句话总结: 1.链接数据库:.env环境配置里面 2.执行数据库操作:DB::table('users')->up ...
随机推荐
- 多核服务器的JVM优化选项(转载)
原文链接 现在多核CPU是主流.利用多核技术,可以有效发挥硬件的能力,提升吞吐量,对于Java程序,可以实现并发垃圾收集.但是Java利用多核技术也带来了一些问题,主要是多线程共享内存引起了.目前内存 ...
- MongoDb 判断字段长度比较好的方法
查询某字段长度超过一定长度时的方法, MongoDB中可能不好处理,一般这样: db.test.find({ $where:"this.F_DAQDATA.legnth>600&quo ...
- paramiko执行命令超时的问题
问题:paramiko远程执行命令,需要等到命令返回信息,如果命令执行时间比较长,返回信息就需要等很久 方案:1.使用nohup + 待执行命令 + & ,使用后台执行的方式,应该可以快速返回 ...
- 现代数字信号处理——AR模型
1. AR模型概念观 AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值,其目的都是为了增加有效数据,只是AR模型是由N点递推, ...
- mySql 主从复制linux配置
总结: 主库(192.168.1.251): /etc/my.cnf.d/server.cnf [mysqld] log-bin=mysql-bin server-id=1 从库(192.168.1. ...
- windows程序设计——飞机大战笔记(Access数据库的使用)
//////////////////2015/07/22/////////////////// /////////////////by xbw ///////////////////////// // ...
- 关于finfo_file函数获取文件mime值验证出错的问题
今天在做图片上传 验证图片mime值时 突然发现 个别特殊情况下finfo_file 获取的MIME值不能直接使用, 依照官方的写法是 $finfo=finfo_open(FILEINFO_MIME ...
- 命令行查看w3wp进程信息
用windbg.mdbg等调试器调试时,当出现多个w3wp进程并且用户名相同,需要区分每个w3wp进程对应的PID(进程ID)和应用程序池信息. 我们用以下方式得到每个w3wp进程的详细信息. Win ...
- H5实现多图片预览上传,可点击可拖拽控件介绍
版权声明:欢迎转载,请注明出处:http://blog.csdn.net/weixin_36380516 在做图片上传时发现一个蛮好用的控件,支持多张图片同时上传,可以点击选择图片,也可以将图片拖拽到 ...
- VM(转)
vmplayer && VMworkstation 很多人想尝试一下多种不同的操作系统,例如学习Linux:又或者希望搞一个专门的系统用来测试各种各样东西而不会搞乱搞坏现有的系统. ...