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

本文介绍了Laravel框架中如何使用单行为控制器简化代码,通过`__invoke()`方法定义仅执行一个操作的控制器。同时,讲解了设置路由回退机制,当访问不存在的路由时,可以自动重定向到指定页面,提升用户体验。此外,还展示了如何获取当前路由的相关信息,如路由名称和执行方法。这些技巧对于优化路由管理和错误处理非常实用。
摘要由CSDN通过智能技术生成

一.单行为控制器

  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');

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值