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中的常见路由有哪几种)的更多相关文章

  1. laravel基础课程---2、Laravel配置文件、路由及php artisan(php artisan是什么)

    laravel基础课程---2.Laravel配置文件.路由及php artisan(php artisan是什么) 一.总结 一句话总结: PHP工具匠:php artisan,其实本身就是一些PH ...

  2. laravel基础课程---8、laravel响应和视图(响应是什么)

    laravel基础课程---8.laravel响应和视图(响应是什么) 一.总结 一句话总结: 就是向请求返回的响应数据(一般为html(视图),当然也可以是变量值):所有的路由及控制器必须返回某个类 ...

  3. laravel基础课程---4、Laravel基础网站结构搭建

    laravel基础课程---4.Laravel基础网站结构搭建 一.总结 一句话总结: 1.搭建网站前后台路由:在路由组Route::group()中设置好命名空间和前缀 2.搭建控制器:比如1)新建 ...

  4. laravel基础课程---1、laravel安装及基础介绍(laravel如何安装)

    laravel基础课程---1.laravel安装及基础介绍(laravel如何安装) 一.总结 一句话总结: [修改composer镜像地址].[明确laravel的安装要求].[安装指定版本的la ...

  5. laravel基础课程---5、路由复习(路由作用)

    laravel基础课程---5.路由复习(路由作用) 一.总结 一句话总结: 有利于百度收录,及SEO优化 1.路由书写 (D:\laravel\yzmedu\yzm2\routes\web.php) ...

  6. laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)

    laravel基础课程---15.分页及验证码(lavarel分页效果如何实现) 一.总结 一句话总结: 数据库的paginate方法:$data=\DB::table("user" ...

  7. laravel基础课程---12、lavarel的ajax操作2(lavarel的ajax使用总结)

    laravel基础课程---12.lavarel的ajax操作2(lavarel的ajax使用总结) 一.总结 一句话总结: 比较简单:就是js请求ajax,然后控制器获取请求参数,返回数据即可 1. ...

  8. laravel基础课程---11、lavarel的ajax操作(ajax优劣势是什么)

    laravel基础课程---11.lavarel的ajax操作(ajax优劣势是什么) 一.总结 一句话总结: 优势:用户友好度:异步通信,不会频繁刷新页面,用户友好度比较高 优势:减轻数据库压力 缺 ...

  9. laravel基础课程---10、数据库基本操作(如何使用数据库)

    laravel基础课程---10.数据库基本操作(如何使用数据库) 一.总结 一句话总结: 1.链接数据库:.env环境配置里面 2.执行数据库操作:DB::table('users')->up ...

随机推荐

  1. Java中泛型的Class<Object>与Class<?>的区别(转)

    Object是一个具体的类名,而?是一个占位符号,表示任何类型,只要是SomeClass类或者子类就可以. List<Object>可以放任何类对象. List<? extends ...

  2. ChsLLVMDocs

    https://github.com/wuye9036/ChsLLVMDocs/blob/master/CodeGen.md

  3. iOS真机测试,为Provisioning添加设备

    ------------添加设备到provisioning------------- 1,登陆https://developer.apple.com/devcenter/ios/index.actio ...

  4. C#制作、打包、签名、发布Activex全过程【转】

    http://www.cnblogs.com/still-windows7/p/3148623.html 一.前言 最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信.调用,单单依靠H ...

  5. 如何给redis设置密码

    如何给redis设置密码 学习了:https://blog.csdn.net/qq_35357001/article/details/56835919

  6. 使用纯CSS3实现一个日食动画

    日食现象是月亮挡在了地球和太阳之间,也就是月亮遮挡住了太阳. 所以要构造日食,我们须要2个对象:一个代表月亮,一个代表太阳. <div class="eclipse sun" ...

  7. ARC forbids Objective-C objects in structs or unions

    解决方法有二种: 1.在出错的地方加入__unsafe_unretained 2.关闭系统ARC.1.点击project   2.点击Build Setting    3.找到其以下的Objetive ...

  8. UDIMM、RDIMM、SODIMM以及LRDIMM的区别

    DIMM简介 DIMM(Dual Inline Memory Module,双列直插内存模块)与SIMM(single in-line memory module,单边接触内存模组)相当类似,不同的只 ...

  9. iOS 7 中 StoryBoard 总体缩放

    iOS 7 中 StoryBoard 总体缩放 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用 ...

  10. 去除input框的值

    onfocus="this.value=' ';" <input type="text" name="buynum" id=" ...