首页 > 解决方案 > Silverstripe 4 silvershop optionsetfield 自定义两个值和日期到期(如果有)

问题描述

我的客户希望在 SilverShop 的属性上有一个位置和日期,这很好。我这样做是为了让这两个字段在后端工作。但试图将两个值组合成一个下拉列表或选项集。PHP 不是我的强项,可能非常简单。

所以下面是更改所需的代码。所以 $location 和 $thedate 是需要放在一起的值,即。伦敦 - 2020 年 4 月 24 日。

所以目前它只使用位置,我无法锻炼如何将它们与中间的连字符放在一起。

   public function getOptionsetField($emptystring = null, $values = null)    
{
    $values = ($values) ? $values : $this->Values()->sort(['Sort' => 'ASC', 'Value' => 'ASC']);

    $location = 'Location';
    $thedate = 'TheDate';

    if ($values->exists()) {
        $field = OptionsetField::create(
            'ProductAttributes[' . $this->ID . ']',
            $this->Name,
            $values->map('ID', $location )
        );
                   return $field;
    }
    return null;
}

我想合并的另一个功能是不显示过去日期的值。所以隐藏过去的日期。即到期。这是旧的站点代码,我想知道是否可以将其合并到此代码中。

public function hasExpired() {
return (strtotime($this->TheDate) > time());
}

谢谢

在此处输入图像描述

标签: silverstripesilvershop

解决方案


推荐阅读