在 kitsune 中,如何在不使用 k-dl 的情况下创建 URL 格式的实体详情页?

In kitsune, how to create a URL format of a details page of an entity without using k-dl?

我正在尝试在 kitsune 中创建一个电子商务网站。我不想在 k-dl 中使用 _kid 值。例如,典型的做法是 -

k-dl="/product/[[product.name.urlencode()]]/[[product.code]]/[[product._kid]]"

如果我不想使用 _kid 作为它的长 GUID。我想使用代码作为每个产品的唯一代码作为特定产品的标识符。

当我如下定义 k-dl 时,它给我一个错误,我必须使用 URL 格式的 _kid:

k-dl="/product/[[product.name.urlencode()]]/[[product.code]]"

在 kitsune 中实现对象详细信息页面 URL 的理想方式,它有一个唯一的 ID,即 _kid 以及 k- object 以获得最佳性能,因为 kitsune 中的对象由 _kid 唯一标识,它是 自动生成的 kitsune id

但是,有另一种方法可以在没有 kitsune 唯一 ID (_kid) 的情况下实现对象详细信息页面。

如果你想从你这边维护对象的唯一性,你可以在 kitsune 对象中创建任何唯一字段并按如下方式使用它。 因此,如果您使用 k-object,_kid 是必需的,您需要从页面中删除 k-object 属性。

假设 product.code 是您从 K-Admin 维护的唯一字段,您可以使用 k-dl如下。

<head k-dl="/product/[[product.name.urlencode()]]/[[product_code_param]]">

此处 [[product_code]] 是来自 URL 的 动态变量 ,确保您传递正确的产品代码值以生成 URL.

现在您只需使用 k-repeat 循环即可获得唯一对象,如下所示

<div k-repeat="[[product in business.products]]">
  <div k-show="[[product.code == product_code_param]]"> <!--this will only render if the product code is matching with the url param-->
  
    <p>[[product.name]]</p>
  
  </div>
</div>