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

时间:2018-10-27 21:29:32

标签: serverless

我正在尝试在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]]"

1 个答案:

答案 0 :(得分:0)

在kitsune中实施对象详细信息页面URL的理想方法是使其具有唯一的ID,该ID为 _kid k-object 以获得最佳性能,作为kitsune中对象的唯一标识是 _kid ,它是自动生成的kitsune id

但是,是的,还有另一种方法来实现对象详细信息页面,而无需使用kitsune唯一ID(_kid)。

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

假设 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>