首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过laravel路由传递多个参数,但保持url“干净”(不显示它们)

通过Laravel路由传递多个参数,同时保持URL“干净”(不显示它们),可以使用路由的隐式绑定和命名路由的方式。

隐式绑定是指将路由参数与控制器方法的参数进行自动绑定,无需在路由中显式指定参数名称。在路由定义中,使用{参数名}的形式来表示参数,并在控制器方法中声明相同名称的参数。例如:

代码语言:txt
复制
Route::get('user/{id}/profile', 'UserController@showProfile');

在上述例子中,{id}是一个参数,它将被绑定到UserController控制器的showProfile方法的参数中。

命名路由是指给路由定义一个名称,以便在代码中引用该路由。通过使用命名路由,可以在不暴露参数的情况下生成URL。在路由定义中,使用->name('路由名称')来为路由指定名称。例如:

代码语言:txt
复制
Route::get('user/{id}/profile', 'UserController@showProfile')->name('profile');

在上述例子中,路由被命名为profile

为了生成URL,可以使用route('路由名称', ['参数名' => '参数值'])函数。例如:

代码语言:txt
复制
$url = route('profile', ['id' => 1]);

上述代码将生成一个URL,其中参数id的值为1。

综上所述,通过使用隐式绑定和命名路由,可以在Laravel中实现通过路由传递多个参数,同时保持URL“干净”的效果。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

laravel 学习之路 路由视图初探

在其他框架,控制器一般就是一个类,laravel例外,laravel 的控制其结构并没有什么特殊。 <?...; } } Route(路由)是什么? 路由就是网络请求的 urllaravel 应用层的逻辑处理地址的对应关系。...,controller控制器比作多部手机设备变很好理解 配置路由 laravel 的每一个路由是需要手动定义的,Laravel 的控制器非常的干净,与其他类的耦合度相当的低。...虽然 laravel 没有强加给你既定的路由规则,你拥有了更多定制的权利,并且 laravel 定义路由的方式非常优雅,带给你的体验非常丰富。...其中 Route 是一个静态类 ,get是Route类的静态方法,get方法传递了2个参数,第一个是 / 、第二个是一个闭包并且在闭包函数中return返回的东西就是我们请求到的内容,从中可以看出

1.4K10

Laravel 路由使用入门

注:这里需要注意的是,我们并没有通过 echo 或 print 显示输出内容,而是通过 return 将其返回,Laravel通过内置的响应栈和中间件对返回内容进行处理。...$id; }); 这样,如果传递任何参数访问 http://blog.test/user,则会使用默认值 1 作为用户 ID。...5、路由命名 在应用其他地方引用路由的最简单的方式就是通过定义路由的第一个路径参数,你可以在视图中通过辅助函数 url() 来引用指定路由,该函数会为传入路径加上完整的域名前缀,所以 url('/')...你可以在视图文件中这么使用: 此外,Laravel 还允许你为每个路由命名,这样一来,不必显式引用路径 URL 就可以对路由进行引用,这样做的好处是你可以为一些复杂的路由路径定义一个简单的路由名称从而简化对路由的引用...此外,我们还可以简化对路由参数传递,比如上例可以简化为: 这样调用的话,数组中的参数顺序必须与定义路由时的参数顺序保持一致

2.6K50

PHP-Laravel入门使用(路由

【通俗的讲,路由就是访问地址形式】 在博客中,当我们在URL地址中,传递p(平台)、c(控制器)、a(方法)三个参数时,系统会自动跳转到指定模型中指定控制器的指定方法,这些处理过程都是由框架自动完成的...2、routes\web.php配置文件中配置路由(重点) (1)默认根路由 问题:为什么当我们在浏览器中访问虚拟域名http://域名时,如何显示Laravel5?...3、路由参数 路由参数其实就是给路由传递参数参数分为必选参数和可选参数。 必选参数:一旦在路由中定义了,则必须传递传递就会报错。...$id; }); 路由参数传递通过路由地址中的“{参数名}”的形式来进行传递,该形式是必选参数的形式,可以选的则使用“{参数名?}”。 ?...如果设定了可选路由参数,但是又没有给默认值同时也没传递,则报错: ? 扩展: 路由参数除了上述的2种传递方式之后,还支持传统的路由参数传递url?

1.9K20

Laravel路由研究之domain解决多域名问题的方法示例

材料准备 一份干净laravel 两份Nginx配置文件,主要配置如下: server_name *.amor_laravel_test_1.amor; root /var/www/amor_laravel_test...,可能的使用场景:在单独路由中需要根据不同的域名处理不同的需求 dd($account, $webname, $suffix, $id); }); }); 注意: 若account固定...关于路由中的Action在多域名下的说明 首先,我们需要知道Action决定了路由会绑定到哪个控制器,还有一点需要注意,路由中的Action属性,决定了辅助函数 route() 生成的url。...或者区分控制器都会导致 route 辅助函数生成的绝对路径是最后一个路由domain,因此如果我们的逻辑一致,只是想通过简单的修改,通过不同的域名区别不同的站点,我们需要做判断,按需加载: public...,结构清晰, domain不仅仅可以作为区分子域名来使用,也可以做参数分割,不同域名区分等 注意Laravel路由匹配顺序,希望大家能认真的做一遍,体验一下,做到心中有数 既然已经区分开域名,那么就可以绑定到不同的控制器

2.5K30

# 3分钟短文:Laravel路由注册,你必须掌握的“动词”!

; }); web服务器配置正确后,我们就可以通过 http://www.example.com/ 这个路由地址直达该路由。...,比如这样: Route::get('/', 'WelcomeController@index'); 动态路由需要用户提供更多个输入参数,所以在规划路由上,可以使用占位符接收路由地址的数据,比如这样写:...传递多个位置参数也是毫无压力的: Route::get('users/{userId}/comments/{commentId}', function ($thisIsActuallyTheUserId...但是并不推荐,前后保持一致性,有利于bug排查和调试,是最佳实践。 有些位置参数,可以填可以填,并不是强制要求的。或者说,如果传的话,给定一个默认值,经过数据处理后返回给用户也是可以的。...写在最后 本文初步介绍了laravel内注册一条路由的方法,简单地讲解了位置参数的传入和接收,以及在路由内添加正则表达式赋能的条件约束方式。都是基础而且使用的,大家一定要牢固掌握。

71222

3分钟短文:Laravel路由注册,你必须掌握的“动词”!

; }); web服务器配置正确后,我们就可以通过 http://www.example.com/ 这个路由地址直达该路由。...,比如这样: Route::get('/', 'WelcomeController@index'); 动态路由需要用户提供更多个输入参数,所以在规划路由上,可以使用占位符接收路由地址的数据,比如这样写:...传递多个位置参数也是毫无压力的: Route::get('users/{userId}/comments/{commentId}', function ($thisIsActuallyTheUserId...但是并不推荐,前后保持一致性,有利于bug排查和调试,是最佳实践。 有些位置参数,可以填可以填,并不是强制要求的。或者说,如果传的话,给定一个默认值,经过数据处理后返回给用户也是可以的。...写在最后 本文初步介绍了laravel内注册一条路由的方法,简单地讲解了位置参数的传入和接收,以及在路由内添加正则表达式赋能的条件约束方式。都是基础而且使用的,大家一定要牢固掌握。

41120

Laravel框架路由与MVC实例详解

分享给大家供大家参考,具体如下: 1、路由 路由的作用就是将用户的不同url请求转发给相应的程序进行处理,laravel路由定义在routes文件夹中,默认提供了四个路由文件,其中web.php文件定义基本页面请求...1.1、基本路由 最基本的路由请求是get与post请求,laravel通过Route对象来定义不同的请求方式。..."; }); 以get请求时将参数传递,结果如下: ? 可选参数:以上的参数是必须的,如果缺少某一个参数就会报错,如果希望某个参数是可选的,可以为它加一个?..."; })- where(['name'= '[A-Za-z]+','age'= '[0-9]+']); 1.4、路由群组 有时我们的路由可能有多个层级,例如定义一级路由home,其下有二级路由article...function(){ return route('comment'); //通过route函数生成comment对应的url }]); 输出为http://localhost/Laravel

2.7K50

路由使用进阶(二)

App\Models\Task::findOrFail($id); }); Laravel 提供了一个「路由模型绑定」功能来简化上述代码编写,通过路由模型绑定,我们只需要定义一个特殊约定的参数名(比如...隐式绑定 使用路由模型绑定最简单的方式就是将路由参数命名为可以唯一标识对应资源模型的字符串(比如 task 而非 id),然后在闭包函数或控制器方法中对该参数进行类型提示,此处参数名需要和路由中的参数保持一致...{task},然后默认以参数值作为资源 ID 在底层通过 Eloquent 查询获取对应模型实例,并将结果传递到闭包函数或控制器方法中。...,以后每次访问包含 {task_model} 参数路由时,路由解析器都会从请求 URL 中解析出模型 ID ,然后从对应模型类 Task 中获取相应的模型实例并传递给闭包函数或控制器方法: Route...所谓兜底路由,就是当路由文件中定义的所有路由都无法匹配用户请求的 URL 时,用来处理用户请求的路由,在此之前,Laravel 都会通过异常处理器为这种请求返回 404 响应,使用兜底路由的好处是我们可以对这类请求进行统计并进行一些自定义的操作

8.5K40

Laravel系统3.3】控制器与表单验证

在传统的框架中,我们的控制器往往也充当路由的功能,比如 TP3.2 系列,定义控制器名称就是我们要请求的 URL 路径名称。...之前在讲路由的时候也说过这个问题,但是在 Laravel 中,实现了路由和控制器的解耦,所以我们的控制器是可以随意定义并且命名的,直接通过路由来进行绑定。...如果继承这个基类,也就无法使用框架的能力,比如说中间件之类的功能。我们这里测试的是直接通过命令行创建的,看看它的代码。 <?...都可以通过依赖注入的方式获取到指定的参数。...它的第一个参数我们传递的是所有的请求数据,当然,也可以自己传递一个数组进来进行验证。第二个参数就是和上面一样的验证配置信息。不同的,它的第三个参数是我们可以自定义的验证提示信息。

8.7K20

Laravel框架处理用户的请求操作详解

"<br/ "; //判断请求类型 if ($request- isMethod('POST')){} //请求的url echo "url:" ....redirect()函数来实现页面的重定向 //重定向到命名路由,带参数 return redirect()- route('redirect',['name'= 'tory']); //重定向到路由,...with可以将数据通过session传给页面,之后通过Session::get(‘msg’)来获取数据,这也是两个页面之间跳转时数据传递较为安全的方法。...4.2、注册路由 中间件的注册在app/Http/kernel.php文件中的Kernel类,其中有三个属性: $middleware属性用于定义全局中间件,每个http请求都需要通过全局中间件。...$middlewareGroups属性用于定义中间件组,比如你需要给某个路由指定多个中间件,分别指定太过麻烦,你可以把它们放在一个中间件组中。

9.4K41

3分钟短文:Laravel路子真野啊!路由昵称前缀中间件

引言 上一章内容我们介绍了使用laravel路由动词定义方便的url,以及通过url参数绑定传递数据,本文我们继续深入Route功能,学习一些提升生产力的方法,在现实场景中也非常实用。...这样定义之后在HTML文件内比如有 a 标签,或者 form 表单的 action,填url地址的时候,就可以使用laravel的助手函数,这样来写: "> 这样使用起来,就好像记一个函数名一样,然后通过数组传入绑定的位置参数,一般不容易写错,格式化也更好。...,可以灵活组装url,比如按照位置传入的数据,指定键名,按顺序传入: route('users.comments.show', [1, 2]) // http://myapp.com/users/1/...laravel的花样是真多啊! 不仅如此,我们还可以为路由组声明是指定的命名空间下的控制器所使用的。这样,可以通过把相似功能模块放在相同命名空间下,从而达到路由分组的目的。

1.5K30

3分钟短文:Laravel路子真野啊!路由昵称前缀中间件

引言 上一章内容我们介绍了使用laravel路由动词定义方便的url,以及通过url参数绑定传递数据, 本文我们继续深入Route功能,学习一些提升生产力的方法,在现实场景中也非常实用。...这样定义之后在HTML文件内比如有 a 标签,或者 form 表单的 action,填url地址的时候,就可以使用laravel的助手函数,这样来写: "> 这样使用起来,就好像记一个函数名一样,然后通过数组传入绑定的位置参数,一般不容易写错,格式化也更好。...,可以灵活组装url,比如按照位置传入的数据,指定键名,按顺序传入: route('users.comments.show', [1, 2]) // http://myapp.com/users/1/...laravel的花样是真多啊! 不仅如此,我们还可以为路由组声明是指定的命名空间下的控制器所使用的。这样,可以通过把相似功能模块放在相同命名空间下,从而达到路由分组的目的。

1.6K11

Laravel框架关键技术解析

)即一个没有指定名称的函数,经常用做回调函数(callback)参数的值 2.匿名函数既可以作为参数传递给函数,也可以做为变量赋值,进而控制函数的执行过程;可以从父作用域中继承变量,使用use关键字来继承...;默认PHP是通过复制的方式传入上层变量进入匿名函数,如果需要改变上层变量的值,需要通过引用的方式传递。...多个trait通过逗号分隔,通过use关键字列出多个trait 冲突的解决:如果两个trait都插入了一个同名的方法,若没有明确解决冲突将会产生一个致命错误,使用insteadof操作符来明确指定使用哪一个...]),使用这个路由重定向时$url=route('命名’) 路由群组:Route::group([‘prefix’=>’组资源名’,’middleware’=>’中间件'],function(){子路由...[/{参数名}……]’,’控制器类名@函数名称’);参数与顺序有关,与命名无关 隐式控制器路由:Route::controller(‘路由前缀’,’控制器类名’[,命名路由]);请求结构为”主机地址/路由前缀

11.9K20

Laravel系列3.2】路由:指哪儿打哪儿

路由:指哪儿打哪儿 在没有接触到 Laravel 之前,早先的框架基本上都没有这个完整的路由的概念。像是 TP3 、Yii1 版本的时候,都是通过入口文件对参数的解析来加载指定的 控制器 。...Restful 风格的 URL 多个 URI 指向同一个控制器(可以在路由中区分参数) URI 和 控制器 解耦,自由定义名称,不受控制器里面方法名的限制 很多场景都不需要控制器,比如一个静态页面,直接路由里就可以搞定了...路由命名与跳转 在原始的 PHP 中,如果我们需要跳转链接,一般使用的是 header() 方法,并在参数里使用 Location:url 这种方式。.../route/user/1 // Erwin Ortiz 上述代码中,我们需要参数名称和模型对象的参数名称相同,然后在 URL传递对应数据的 ID ,这样就可以直接查询到模型对象对应的数据信息。...对于这个功能,大家也是以了解为主,实际的业务开发中,除了真的只是要一些简单的数据,否则不会直接通过路由就去操作模型,毕竟少了控制器的一些参数整合过滤,还是略有一些风险的。

11.8K10

Laravel 底层原理:门面(Facades)

何时使用 Facades 门面有诸多优点,其提供了简单、易记的语法,让我们无需记住长长的类名即可使用 Laravel 提供的功能特性,此外,由于他们对 PHP 动态方法的独到用法,使得它们很容易测试。...因此在使用 Facades 的时候,要特别注意控制好类的大小,让类的作用范围保持短小。...在下面的例子中,调用了 Laravel 的缓存系统。通过浏览这段代码,可以假定在 Cache 类中调用了静态方法 get: <?...我们使用 Facade 进行的任何调用都将传递Laravel 缓存服务的底层实例。...不过,这要求我们每次调用 publish 方法时,都要传递一个发布服务实例。 使用实时门面,我们可以在维持这种易于测试的前提下不必显式传递 Publisher 实例。

1.3K10

Laravel 底层原理:门面(Facades)

何时使用 Facades 门面有诸多优点,其提供了简单、易记的语法,让我们无需记住长长的类名即可使用 Laravel 提供的功能特性,此外,由于他们对 PHP 动态方法的独到用法,使得它们很容易测试。...因此在使用 Facades 的时候,要特别注意控制好类的大小,让类的作用范围保持短小。...在下面的例子中,调用了 Laravel 的缓存系统。通过浏览这段代码,可以假定在 Cache 类中调用了静态方法 get: <?...我们使用 Facade 进行的任何调用都将传递Laravel 缓存服务的底层实例。...不过,这要求我们每次调用 publish 方法时,都要传递一个发布服务实例。 使用实时门面,我们可以在维持这种易于测试的前提下不必显式传递 Publisher 实例。

1.1K20
领券