【问题标题】:Hypens Break Laravel Dynamic Routes连字符打破 Laravel 动态路由
【发布时间】:2021-10-17 04:38:54
【问题描述】:

所以我正在建立一个工作板,并在我的 routes/web.php 中有一条路线,如下所示:

Route::get('/dublin-{slug}-jobs', [JobController::class, 'tag']);

如果 slug 是像“cleaning”作业这样的单个词,那么路线会按预期工作,但是我拥有的大多数 slug 都是用连字符连接的两个词,例如“delivery-driver”,所以 URL /dublin-delivery-driver -jobs 抛出 404 错误。

我的工作控制器:

public function tag($slug) {

    $jobs = Job::orderBy('created_at', 'DESC')->where('published', 'true')->where('created_at', '>=', Carbon::now()->subDays(90))->get();
    $tags = tag::where('live', 'true')->get();

    return view('home.tag')->with('jobs', $jobs)->with('tags', $tags);
}

任何关于如何使这个被炒作的路线名称起作用的见解都会很棒

【问题讨论】:

标签: php laravel


【解决方案1】:

正如@brombeer 指出的那样,使用Regular Expression Constraints 解决了这个问题,我将它添加到我的路线中,现在它可以工作了:

Route::get('/remote-{slug}-jobs', [JobController::class, 'tag'])->where('slug', '[A-Za-z0-9-]+');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多