Laravel 框架路由参数.重定向.视图回退.当前路由.单行为 ②

请添加图片描述

@作者 : SYFStrive

 
请添加图片描述

@博客首页 : HomePage

📜: THINK PHP

📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗

📌:觉得文章不错可以点点关注 👉:专栏连接🔗


请添加图片描述
相关专栏

👉 VUEJS(🔥)
👉 MYSQL(🔥)
👉 微信小程序(🔥)
👉 PHPMYSQL(🔥)
👉 UNIAPP开发(🔥)

目录

  • PHP LARAVEL 简介
  • PHP LARAVEL 路由参数 重定向 视图
  •    路由参数
  •    路由重定向
  •    路由视图
  • PHP LARAVEL 回退.当前路由.单行为
  •    LARAVEL 回退
  •    LARAVEL 当前路由
  •    LARAVEL 单行为
  • 最后


                    ⡖⠒⠒⠒⠤⢄⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸   ⠀⠀⠀⡼⠀⠀⠀⠀ ⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢶⣲⡴⣗⣲⡦⢤⡏⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠋⠉⠉⠓⠛⠿⢷⣶⣦⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠇⠀⠀⠀⠀⠀⠀⠘⡇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡞⠀⠀⠀⠀⠀⠀⠀⢰⠇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡴⠊⠉⠳⡄⠀⢀⣀⣀⡀⠀⣸⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠰⠆⣿⡞⠉⠀⠀⠉⠲⡏⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⢧⡀⣀⡴⠛⡇⠀⠈⠃⠀⠀⡗⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣱⠃⡴⠙⠢⠤⣀⠤⡾⠁⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⣇⡼⠁⠀⠀⠀⠀⢰⠃⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣸⢠⣉⣀⡴⠙⠀⠀⠀⣼⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡏⠀⠈⠁⠀⠀⠀⠀⢀⡇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⡼⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⣰⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣀⠤⠚⣶⡀⢠⠄⡰⠃⣠⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢀⣠⠔⣋⣷⣠⡞⠀⠉⠙⠛⠋⢩⡀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀
⠀⡏⢴⠋⠁⠀⣸⠁⠀⠀⠀⠀⠀ ⠀⣹⢦⣶⡛⠳⣄⠀⠀⠀⠀⠀
⠀⠙⣌⠳⣄⠀⡇   不能   ⡏⠀⠀  ⠈⠳⡌⣦⠀⠀⠀⠀
⠀⠀⠈⢳⣈⣻⡇   白嫖 ⢰⣇⣀⡠⠴⢊⡡⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠳⢿⡇⠀⠀⠀⠀⠀⠀⢸⣻⣶⡶⠊⠁⠀⠀
⠀⠀⠀⠀⠀⢠⠟⠙⠓⠒⠒⠒⠒⢾⡛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣠⠏⠀⣸⠏⠉⠉⠳⣄⠀⠙⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⡰⠃⠀⡴⠃⠀⠀⠀⠀⠈⢦⡀⠈⠳⡄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣸⠳⣤⠎⠀⠀⠀⠀⠀⠀⠀⠀⠙⢄⡤⢯⡀⠀⠀⠀⠀⠀⠀
⠀⠐⡇⠸⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡆⢳⠀⠀⠀⠀⠀⠀
⠀⠀⠹⡄⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⠸⡆⠀⠀⠀⠀⠀
⠀⠀⠀⠹⡄⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡀⣧⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢹⡤⠳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣷⠚⣆⠀⠀⠀⠀
⠀⠀⠀⡠⠊⠉⠉⢹⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡎⠉⠀⠙⢦⡀⠀
⠀⠀⠾⠤⠤⠶⠒⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠒⠲⠤⠽   

提示:以下是本篇文章正文内容

PHP LARAVEL 简介

  • Laravel是一种流行的开源PHP Web应用程序框架,由Taylor Otwell在2011年创建并发布。它提供了一个简洁优雅的语法和丰富的功能集,旨在使Web开发过程更快速、简单和愉悦。
  1. MVC架构模式:Laravel采用了MVC(Model-View-Controller)架构模,将应用程序的逻辑分为不同的层,提高了代码的可维护性和可测试性。

  2. 简洁的语法和表达力:Laravel框架支持具有简洁而表达力的语法,使得编写清晰、易读、易维护的代码成为可能。

  3. 路由系统:它提供了一个强大且灵活的路由系统,通过简单的配置和代码即可定义Web应用程序的路由规则,实现URL到控制器的映射。

  4. 数据库抽象层:Laravel提供了一个简便的数据库抽象层,支持多种数据库系统,并通过Eloquent ORM提供了一种优雅的方法来与数据库进行交互。

  5. 权限和认证系统:Laravel提供了内置的身份验证和授权功能,使得实现用户身份验证、访问控制和权限管理变得简单和便捷。

  6. 缓存系统:Laravel支持多种缓存后端,包括文件、数据库、Memcached和Redis等,让你可以轻松地实现缓存数据,提升应用程序的性能。

  7. 强大的扩展性:Laravel通过Composer和Packagist等工具提供了丰富的扩展包生态系统,可以快速集成各种功能组件和第三方库,加快开发进程。

  8. 测试支持:Laravel鼓励编写和运行测试,提供了一套丰富的测试工具和断言,帮助开发者确保代码的质量和可靠性。

  • 总的来说,Laravel框架以其易用性、优雅的语法、丰富的功能和强大的扩展性受到了广大开发者的喜爱。它提供了

PHP LARAVEL 路由参数 重定向 视图

   路由参数

  1. 有时这个参数需要进行约束,我们可以使用正则来限定必须是数字;
Route::get('/task/read/{id}',[Controllers\OneController::class, 'read'])
	->where('id', '[0-9]+');
	->where(['id'=>'[0-9]+']);
    ->where('id', '.*');
  1. 如果想让约束 id 只能是 0-9 之间作用域全局范围,可以在模型绑定器里设置;
  2. 模型绑定器路径为:app\Providers\RouteServiceProvider 的 boot() 方法;
public function boot()
{
	Route::pattern('id', '[0-9]+');
	parent::boot();
}
  1. 如果 id 已经被全局约束,在某个局部你想让它脱离约束,可以如下操作:
    → where(‘id’, ‘.*’);

   路由重定向

  1. 可以设置访问一个路由的 URI,跳转到另一个路由的 URI,具体如下:

Route::redirect(‘index’, ‘task’);

Route::redirect(‘index’, ‘task’, 301); //状态码

  1. 还有一个方法,可以直接让路由跳转返回 301 状态码而不用设置:

Route::permanentRedirect(‘index’, ‘task’);

   路由视图

  1. 在使用视图路由之前,我们先要创建一个视图(MVC)中的 V 部分;
  2. 使用视图路由,有三个参数:1.URI(必);2.名称(必);3.参数(选);
//参数 1:URI,localhost:8000/task
//参数 2:view,resources/views/task.blade.php
//参数 3:传参,{{$id}}
Route::view('task', 'task', ['id'=>10]);
  1. 对于视图页面的创建,在 resources/views 下创建 task.blade.php;
{{--静态页面--}}
task{{$id}}
  1. 当然,也可以使用助手函数 view()方法来实现这个功能;
//这里 view()的
//参数 1 是视图名称
//参数 2 传参,可选;
Route::get('task', function () {
	return view('task', ['id'=>10]);
});
  1. 也可以将路由直接指向控制器的方法,通过方法实现 view() 引入视图;
public function index()
{
	return view('task', ['id'=>10]);
}

PHP LARAVEL 回退.当前路由.单行为

   LARAVEL 回退

  1. 继承基类后除了支持中间件快捷使用,还支持验证、列队等快捷方法;
public function __construct()
{
	$this->middleware('中间件');
}
  1. 如果你想要定义一个只执行一个方法的控制器,可以使用单行为控制器;
  2. 单行为控制器使用__invoke()方法,可以使用命令行创建;

php artisan make:controller OneController --invokable

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

Route::get(‘one’, ‘OneCon’);

   LARAVEL 当前路由

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

   LARAVEL 单行为

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

👉 返回当前路由指向的方法 需要在路由控制器获取

public function conAction()
{
    return Route::currentRouteAction();
}

最后

以上是个人学习 THINKPHP 的相关知识点,一点一滴的记录了下来,有问题请评论区指正,共同进步,这才是我写文章的原因之,如果这篇文章对您有帮助请三连支持一波

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/61741.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nios初体验之——Hello world!

文章目录 前言一、系统设计1、系统模块框图2、系统涉及到的模块1、时钟2、nios2_qsys3、片内存储(onchip_rom、onchip_ram)4、串行通信(jtag_uart)5、System ID(sysid_qsys) 二、硬件设计1、创建Qsys2、重命…

VGGNet剪枝实战:使用VGGNet训练、稀疏训练、剪枝、微调等,剪枝出只有3M的模型

摘要 本文讲解如何实现VGGNet的剪枝操作。剪枝的原理:在BN层网络中加入稀疏因子,训练使得BN层稀疏化,对稀疏训练的后的模型中所有BN层权重进行统计排序,获取指定保留BN层数量即取得排序后权重阈值thres。遍历模型中的BN层权重&am…

MySQL事务管理

MySQL事务管理 MySQL增删查改时的问题一.什么是事务?二.为什么会出现事务?三.事务的其他属性1. 事务的版本支持2. 事务的提交方式 四.事务的准备工作五.事务的操作1. 事务的正常操作2. 事务的异常验证与产出结论 六.事务的隔离级别1. 事务隔离级别概念2.…

CentOS 安装 Jenkins

本文目录 1. 安装 JDK2. 获取 Jenkins 安装包3. 将安装包上传到服务器4. 修改 Jenkins 配置5. 启动 Jenkins6. 打开浏览器访问7. 获取并输入 admin 账户密码8. 跳过插件安装9. 添加管理员账户 1. 安装 JDK Jenkins 需要依赖 JDK,所以先安装 JDK1.8。输入以下命令&a…

如何打造属于自己的个人IP?

在当今信息爆炸的时代,个人 IP 已经成为人们在网络世界中的独特标签。无论是在职场上、创业中,还是在社交生活中,拥有个人 IP 的人都能脱颖而出,吸引更多的关注和机会。那么,如何打造属于自己的个人 IP 呢?…

PowerShell 中,你可以使用以下命令来获取磁盘、内存、CPU、GPU、网卡和声卡的硬件信息

在 PowerShell 中,你可以使用以下命令来获取磁盘、内存、CPU、GPU、网卡和声卡的硬件信息: 获取磁盘信息: Get-PhysicalDisk | Select-Object DeviceID, MediaType, Model, Size获取内存信息: Get-CimInstance Win32_PhysicalM…

中兴服务器支持百度“文心一言”,助力AI产业发展

前段时间,中兴和百度正式对外宣布中兴服务器将会支持百度“文心一言”,为其提供更加强劲的算力支撑,从而加速“文心一言”的完事升级与更新迭代,助力AI产业化应用和生态的繁荣发展。   “文心一言”是百度基于文心大模型技术推出…

【docker】docker-compose服务编排

目录 一、服务编排概念二、docker compose2.1 定义2.2 使用步骤2.3 docker-compose安装2.4 docker-compose卸载 三、编排示例 一、服务编排概念 1.微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启…

0-1搭建vue项目工程

一、下载node.js 简单介绍: Node.js是一个基于V8引擎的JavaScript运行时环境,它允许开发者在服务器端使用JavaScript进行开发。Node.js是一个非常强大的工具,可以帮助开发者构建高性能、可扩展的Web应用程序,并且可以与各种技术…

Gitlab CI/CD笔记-第二天-GitOps的流水线常用关键词(1)

一、常用关键词 在Gitlab项目的根目录需要创建一个 .gitlab-ci.yaml的文件。 这个文件就是定义的流水线。Call :"Pipeline as code" 二、这条流水线怎么写? 一、掌握常用的关键词即可。 1.关键词分类 1.全局关键词 Global Keywards 2.任务关键词…

长度最小的子数组_力扣209

文章目录 题目描述法一 滑动窗口法题目描述 法一 滑动窗口法 int minSubArrayLen(int target, vector<int>&nums){int

HDFS小文件解决方案---archive归档文件命令

小文件解决方案 背景Archive概述创建archive查看归档文件查看归档之后的样子查看归档文件之前的样子 提取archivearchive注意事项 背景 hdfs并不擅长存储小文件&#xff0c;因为每个文件最少一个block&#xff0c;每个block的元数据都会在namenode占用内存&#xff0c;如果存在…

Spring接口ApplicationRunner的作用和使用介绍

在Spring框架中&#xff0c;ApplicationRunner接口是org.springframework.boot.ApplicationRunner接口的一部分。它是Spring Boot中用于在Spring应用程序启动完成后执行特定任务的接口。ApplicationRunner的作用是在Spring应用程序完全启动后&#xff0c;执行一些初始化任务或处…

【cluster_block_exception】写操作elasticsearch索引报错

【cluster_block_exception】操作elasticsearch索引b报错 背景导致原因&#xff1a;解决方法&#xff1a; 背景 今天线上elk的数据太多&#xff0c;服务器的空间不足了。所以打算删除一些没用用的数据。我是用下面的request&#xff1a; POST /{index_name}/_delete_by_query…

VSCode:人生苦短,我用扩展!

B站|公众号&#xff1a;啥都会一点的研究生 作为苦逼码农&#xff0c;每天花费大量时间使用VSCode来编写和调试代码​ 好消息是&#xff0c;VSCode有很多超酷扩展可以让效率直线上升&#xff0c;极大争取摸鱼时间&#xff0c;一起看看吧 1. CodeSnap 用 CodeSnap 轻松捕捉代…

Vue3_对响应式对象解构赋值之后失去响应性——toRefs()

官网toRefs() :响应式 API&#xff1a;工具函数 | Vue.js toRefs 在调用时只会为源对象上可以枚举的属性创建 ref。如果要为可能还不存在的属性创建 ref&#xff0c;请改用 toRef。 setup(){const state reactive({name:"张三"age:14})const stateAsToRefs toRef…

用C语言构建一个数字识别卷积神经网络

卷积神经网络的具体原理和对应的python例子参见末尾的参考资料2.3. 这里仅叙述卷积神经网络的配置, 其余部分不做赘述&#xff0c;构建和训练神经网络的具体步骤请参见上一篇: 用C语言构建一个手写数字识别神经网路 卷积网络同样采用简单的三层结构&#xff0c;包括输入层con…

Qt能跨多少个平台?Qt能支持多少个平台?

2023年8月5日&#xff0c;周日下午 目录 Qt所支持的平台更多关于Qt支持的信息 Qt所支持的平台 图中显示的平台都支持。 想要更详细的平台支持信息可以查看&#xff1a;Supported Platforms | Qt 5.15 更多关于Qt支持的信息 Qt - 支持的平台及语言

物联网||不一样的点灯实验(2)|通过使用CMSIS库函数实现点灯实验-学习笔记(12)

文章目录 通过使用CMSIS库函数实现点灯实验1 如何使用CMIS库2 如何利用CMSIS库操作IO 两种实现方法的比较课后作业:完整代码&#xff1a;LED.C:test.c:led.h:systick.h:systick.c: 通过使用CMSIS库函数实现点灯实验 1 如何使用CMIS库 #####如何使用此驱动#####[. .](#)启用GPI…

传染病学模型 | Python实现基于使用受控SIR模型数据平滑对参数估计的影响

效果一览 文章概述 传染病学模型 | Python实现基于使用受控SIR模型数据平滑对参数估计的影响 我们可以采用更多数据驱动的方法,而不是使用移动平均线进行数据平滑。 我们感兴趣的是了解疾病发作和报告疾病日期之间的延迟