通过删除Laravel中的额外字符,从斜杠分隔的URL中提取参数值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过删除Laravel中的额外字符,从斜杠分隔的URL中提取参数值相关的知识,希望对你有一定的参考价值。
我在laravel框架上为我的php服务器创建路由。如何通过剥离不必要的位从斜杠分隔的URL中提取正确的参数值?
当url模式以Route::get('user/{event_id}',function ($event_id){return view('rsvp',['event_id'=>$event_id]);})->where(['event_id'=>'[0-9]+']);
的形式设置时
它正如预期的那样工作。但是,我想以'user/event-description-here5_now-<event_id>
的形式解析一个url并实现相同的功能。也就是说,我想在我的php文件中使用event_id
并忽略event-description-here5_now
位。我该怎么办呢?
这是不可能的,因为laravel路径模型绑定通过通配符工作,并且当尝试从url段提取数字时它不起作用。
为了使其工作,您将必须自定义laravel路径解析逻辑:https://laravel.com/docs/5.8/routing#route-model-binding
类似的东西:
public function boot()
{
parent::boot();
Route::bind('eventslug', function ($value) {
preg_match('/d+/', strrev($value), $matches);
return Event::find($matches[0]) ?? abort(404);
});
}
或尝试调整网址,如:
user/event-description-here5_now/{event_id}
以上是关于通过删除Laravel中的额外字符,从斜杠分隔的URL中提取参数值的主要内容,如果未能解决你的问题,请参考以下文章
从 Laravel 中的 JSON 字符串中删除添加的反斜杠
在从laravel ajax返回的json中的每个斜杠中获取额外的反斜杠“\”