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 ...
随机推荐
- POJ1430 Binary Stirling Numbers
@(POJ)[Stirling數, 排列組合, 數形結合] Description The Stirling number of the second kind S(n, m) stands for ...
- Android获取状态栏和标题栏的高度
版权声明:本文为博主原创文章,未经博主允许不得转载. 1.获取状态栏高度: decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个 ...
- npm、yarn、pnpm
它们都是当前主流的包管理工具 pnpm:https://github.com/pnpm/pnpm yarn: https://github.com/yarnpkg/yarn npm: https:// ...
- SilverLight:基础控件使用(4)-日期显示和选择类控件
ylbtech-SilverLight-Basic-Control:基础控件使用(4)-日期显示和选择类控件 Calendar,DatePicker 1.A,返回顶部 Calendar控件(日期控件) ...
- Lucene 源码分析之倒排索引(一)
倒排索引是 Lucene 的核心数据结构,该系列文章将从源码层面(源码版本:Lucene-7.3.0)分析.该系列文章将以如下的思路展开. 什么是倒排索引? 如何定位 Lucene 中的倒排索引? 倒 ...
- 转:MapReduce原理与设计思想
转自:http://www.cnblogs.com/wuyudong/p/mapreduce-principle.html 简单解释 MapReduce 算法 一个有趣的例子 你想数出一摞牌中有多少张 ...
- USACO 1.2 Milking Cows (枚举)
标记数组(哈希) 1e6的范围,开一个char数组全然能够,有人为1,无人为0,注意边界就可以.最后线性扫描就可以. 时间复杂度,应该是O(n),n为最后结束的时间. 缺点就是--比較慢 /* ID: ...
- 几种常用的listenner
1.ServletContextListener:监控web容器的启动和关闭 2.HttpSessionListener:监控bs结构中b的session创建和session销毁 3.HttpSess ...
- 我的跟我学Ffmpeg 视频受众有哪些人
经常有人问我如何学习音视频以及如何学习Ffmpeg,问我有没有比较好的书的书推荐.比较好的音视频以及FFmpeg方面的 书,我了解到的比较全面又能深入浅出的还真没有.很多朋友都推荐雷神的博客,雷神的博 ...
- Ubuntu16.04上安装mongoDB
安装MongoDB 现在最新版本是3.4 1: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F37303 ...