一.单行为控制器

  1. 之前的课程,我们简单的创建和定义了控制器,并继承了控制器基类;
  2. 为何要继承基类?因为继承基类后,可以使用基类的方法,比如中间件等;
  3. 继承基类后除了支持中间件快捷使用,还支持验证、列队等快捷方法;
public function __construct() { $this->middleware('中间件');}
  1. 如果你想要定义一个只执行一个方法的控制器,可以使用单行为控制器;
  2. 单行为控制器使用__invoke()方法,可以使用命令行创建;
php artisan make:controller OneController --invokable

//手工创建

class OneController extends Controller { public function __invoke() { return '单行为控制器'; }
}
  1. 单行为控制器,路由定义就不需要指定特定的方法,指定控制器即可;
  2. 单行为控制器只是语义上的单行为,并没有限制创建更多方法访问;
Route::get('one', 'OneController');


二.路由回退

  1. 如果我们跳转到了一个不存在路由时,会产生 404 错误,体验不佳;
  2. 可以使用回退路由,让不存在的路由自动跳转到你指定的页面去;
  3. 注意:由于执行顺序问题,必须把回退路由放在所有路由的最底部;
Route::fallback(function () { return redirect('/');
});
  1. 当然,你也可以制作一个自己的 404 页面,用回退路由加载这个页面;
Route::fallback(function () { return view('404');
});


三.当前路由

  1. 我们可以通过使用::current()系列方法,来获取当前路由的访问信息;
Route::get('index', function () { //当前路由信息 dump(Route::current()); //返回当前路由的名称 return Route::currentRouteName(); //返回当前路由指向的方法 return Route::currentRouteAction();
})->name('localhost.index');



五、PHP框架Laravel学习笔记——回退、当前路由、单行为相关推荐

  1. 二十五、PHP框架Laravel学习笔记——模型的一对一关联

    一.关联概念 关联模型,即:两张或以上的表进行一定规则的绑定关联: 比如:一个学生(学生表)对应一张个人信息卡(信息表),这种就是一对一: 再比如:一篇博文(帖子表)对应多个评论(评论表),这种就是一 ...

  2. 十五、PHP框架Laravel学习笔记——构造器的 join 查询

    一.join 查询 使用 join 实现内联接的多表查询,比如三张表进行 inner join 查询: $users = DB::table('users') ->join('books', ' ...

  3. 七、PHP框架Laravel学习笔记——资源控制器

    一.资源控制器 声明:资源控制器是某个特定场景下的产物,完全理解需要 PHP 项目基础: 比如开发过博客系统,留言帖子系统之类,具有类似思维,否则你懂的-: 只是学习了 PHP 基础,就立刻学习框架的 ...

  4. 十七、PHP框架Laravel学习笔记——模型的定义

    一.默认设置 框架可以使用 Eloquent ORM 进行数据库交互,也就是关系对象模型: 在数据库入门阶段,我们已经创建了一个 User.php 模型,如下: php artisan make:mo ...

  5. 十、PHP框架Laravel学习笔记——数据库配置入门

    一.配置数据库 框架支持原生.查询构造器和 Eloquent ORM(关系型对象映射器)来操作数据库: 数据库的配置在 config/database.php,如果是本地可以直接配置.env 文件: ...

  6. 八、PHP框架Laravel学习笔记——表单伪造和 CSRF 保护

    一.表单伪造 之前一直用的 GET 请求方式,而表单可以实现 POST 方式,我们来实验下: 先在 TaskController 创建两个方法,一个表单页,一个接受表单数据路由: public fun ...

  7. 三、PHP框架Laravel学习笔记——路由参数、重定向、视图

    一.路由参数 我们已经学习了部分路由参数的功能,比如动态传递{id}: 那么,有时这个参数需要进行约束,我们可以使用正则来限定必须是数字: Route::get('task/read/{id}', ' ...

  8. 三十、PHP框架Laravel学习笔记——模型的预加载

    一.预加载 预加载,就是解决关联查询中产生的 N+1 次查询带来的资源消耗 我们要获取所有书籍的作者(或拥有者),普通查询方案如下: //获取所有书籍列表 $books = Book::all(); ...

  9. 二十九、PHP框架Laravel学习笔记——Debugbar 调试器

    二.安装使用 通过 composer 在项目中安装 Debugbar,命令如下: composer require barryvdh/laravel-debugbar 生成一个配置文件,给用户配置,可 ...

最新文章

  1. 【深度好文】沈向洋:读论文的三个层次
  2. 【crontab】误删crontab及其恢复
  3. 51. Leetcode 106. 从中序与后序遍历序列构造二叉树 (二叉树-二叉树构建)
  4. netbeans 定制代码_将NetBeans代码模板弯曲到我的意愿
  5. 举例说明计算机在六个方面的应用,第六章 计算机应用基础简答题答案.doc
  6. 一个代码托管平台居然公开拒招中国人,谁给了你歧视中国程序员的勇气?
  7. 机械设计基础课程设计详细步骤(说明书)
  8. C++课后作业 10.教材习题7_6:哺乳动物类Mammal派生出狗类Dog
  9. 唱响艾泽拉斯_综合篇
  10. 数据仓库、数据湖、数据平台和数据中台的概念和区别
  11. Java判断字符串中是否包含中英文标点符号
  12. 老照片修复清晰?父母以前的老照片还能修复吗?
  13. V2新品来袭 | 简约之选 无限可能
  14. PLC控制系统的软件设计
  15. ap接口 php_cos-php-sdk-v5接口文档
  16. C++17新特性总结
  17. VBA脚本查找AS400 DSPMSG任务执行状态
  18. IDEA基本外观设置(主题、字体、鼠标、背景)
  19. 还在用JSON? Google Protocol Buffers 更快更小 (原理篇)
  20. 【66期分享】4款工作总结PPT模板免费下载

热门文章

  1. 转换文档参数_明明2秒可以搞定Word、Excel相互转换,你却用了半小时!真亏了...
  2. 便携式三星mysql_JDBC链接mysql - 三星蓝
  3. 天融信安全接入客户端_天融信提示您警惕物联网设备Ripple20漏洞风险
  4. Elastic Stack简介
  5. Python中的yield详解
  6. PyQt5案例汇总(简洁版)
  7. Python开发中收集的一些常用功能Demo
  8. Kinect深度图与摄像头RGB的标定与配准(转载文章)
  9. 从static变量导出问题解析 __declspec(dllexport) 和 __declspec(dllimport)的作用
  10. C++中operator的主要用法