首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel中的路由模型绑定

Laravel中的路由模型绑定
EN

Stack Overflow用户
提问于 2022-11-01 14:44:11
回答 1查看 55关注 0票数 0

我有一个Laravel应用程序和一个模型Category。它与自己有一个叫做parent的关系

Category.php

代码语言:javascript
复制
public function parent(): BelongsTo
{
    return $this->belongsTo(self::class, 'parent_uuid', 'uuid');
}

我试着做这样的URL,

例:domain.com/mobile-phones/smartphones (“手机”-类别的母公司,“智能手机”-类别本身)

在路由文件中,应该是:

代码语言:javascript
复制
Route::get('/{parent}/{category}', ...)->name('category');

是否有一种方法来编写代码,所以我只使用一个路由参数?例如:

代码语言:javascript
复制
Route::get('/{category:parent}/{category}', ...)->name('category');

也是一种方法,使在刀片文件时,我生成的url只使用类别。

代码语言:javascript
复制
route('category', ['parent' => $category->parent, 'category' => $category]); // No
route('category', $category); // Yes

我尝试将该路由绑定如下:

代码语言:javascript
复制
/{category:parent}/{category}

但是,它给出了参数category只能使用一次的错误。

EN

回答 1

Stack Overflow用户

发布于 2022-11-01 15:38:52

我会像这样定义路线

代码语言:javascript
复制
Route::get('/categories/{parent}/{category}')->name('category');

因为它容易读懂

在刀片上,在设备上运行一个循环,为路线准备锚标签。

代码语言:javascript
复制
@foreach ($smartPhone as $phones)
    <a href="/categories/{{ $smartPhone->parent->name }}/{{ $smartPhone->categories }}">
      Categories
    </a>
@endforeach

或者如果要显示类别名称

代码语言:javascript
复制
@foreach ($smartPhone as $phones)
    <a href="/categories/{{ $smartPhone->parent->name }}/{{ $smartPhone->categories }}">
      {{ $smartPhone->category }}
    </a>
@endforeach
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74277663

复制
相关文章

相似问题

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