首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >并排静态线路& Laravel中的智能卡线路

并排静态线路& Laravel中的智能卡线路
EN

Stack Overflow用户
提问于 2018-09-15 06:16:27
回答 3查看 153关注 0票数 0

我有一个拉拉维尔网站的用例,我正在努力使一些静态路线坐在完全相同的水平上,主要的外卡路线。

例:

路由: /store/cart 静态路由

路由:/存储/签出静态路由

路由: /store/* 动态路由

路由: /store// 动态路由

路线: /* 动态路线

一直在努力研究如何在Laravel中实现这种路由结构,虽然静态路由规则可以很好地工作,但当我添加了外卡路由时,我就会选择外卡路由,试图捕获静态路由。

我如何能够添加路由规则来支持这一点?

EN

回答 3

Stack Overflow用户

发布于 2018-09-15 06:54:07

将冲突路径更改为非冲突路径。

代码语言:javascript
运行
复制
Route: /store/cart Static Route => this is ok
Route: /store/checkout Static Route => this is ok
Route: /store/* Dynamic Route => /store/id/{id}
Route: /store// Dynamic Route => /store
Route: /* Dynamic Route => remove this and be specific by having more routes for the needs
票数 0
EN

Stack Overflow用户

发布于 2018-09-15 08:15:14

美国全局约束

代码语言:javascript
运行
复制
Route::pattern('all','.*');

然后按照顺序定义你的路线

代码语言:javascript
运行
复制
Route::('store/cart', function () {});
Route::('store/checkout', function () {});
Route::('store', function () {});
Route::('store/{all}', function ($all) {});
Route::('{all}', function ($all) {});
票数 0
EN

Stack Overflow用户

发布于 2018-09-15 10:07:20

设法让它发挥作用。

第一步是使用全局约束路由模式per @Aboalnaga.

代码语言:javascript
运行
复制
Route::pattern('variableName','.*');

每个变量都使用此路由模式定义,以使其成为一个通配符模式。

下一步是确保路由排序。看起来,当处理路由时,Laravel将按顺序通过路由列表。一旦找到第一条匹配的路线,它就会停在那里运行这条路线。因此,为了以domain.com/store/cat-1/product的形式处理路由链,其中请求可以是domain.comdomain.com/storedomain.com/store/cat-1domain.com/store/cat-1/productdomain.com/some-content-page-from-database,需要将路由定义为.

代码语言:javascript
运行
复制
Route::get('/store/shopping-cart', 'onlineStore@showCart');
Route::get('/store/checkout', 'onlineStore@showCheckout');
Route::get('/store/checkout/payment', 'onlineStore@showPayment');
Route::get('/store/checkout/success', 'onlineStore@showPaymentSuccess');
Route::get('/store/checkout/error', 'onlineStore@showPaymentError');
Route::get('/store/{category}', 'onlineStore@showCategory');
Route::get('/store/{category}/{product}', 'onlineStore@showProductDetails');
Route::get('{article}', 'articles@showArticle');

通过按顺序定义路由并将变量路由定义为该级别的最后一条路由,只有在前面的路由不匹配时才会触发变量路由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52342171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档