【问题标题】:SilverStripe Display Logic for ListboxField not workingListboxField 的 SilverStripe 显示逻辑不起作用
【发布时间】:2021-02-25 09:09:03
【问题描述】:

SilverStripe:v4
使用的模块:https://github.com/unclecheese/silverstripe-display-logic

你好,美好的一天!

我在安全页面(成员列表)中,并试图在另一个 ListboxField 上找到某个字符串或值时显示 ListboxField。

.

使用上图,我想在字段中选择或输入销售代表角色,一旦销售代表是出现在群组中,此时我将显示另一个字段

这是我的代码 sn-p

$codesList = Member::get()->column('Code');
$codes = ListboxField::create(
    'AccountPurchases',
    'Account Purchases',
    $codesList);
$fields->insertAfter('DirectGroups', $codes);

$codes->displayIf("DirectGroups")->contains("Sales Representative");

但问题是,无论我做什么(1:dev/build?flush=1,2:刷新页面,3:重新启动应用程序)名为$codes 的所需字段仍然不会出现。

但如果我将它应用到像 FirstName 这样的普通字段(这是一个简单的 TextField),它的工作非常好......

$codesList = Member::get()->column('Code');
$codes = ListboxField::create(
    'AccountPurchases',
    'Account Purchases',
    $codesList);
$fields->insertAfter('DirectGroups', $codes);

$codes->displayIf("FirstName")->contains("Sales Representative");

任何想法如何执行我想要的输出?

【问题讨论】:

    标签: php silverstripe silverstripe-4


    【解决方案1】:

    对于非标准表单字段,您需要使用显示逻辑包装器。 https://github.com/unclecheese/silverstripe-display-logic#dealing-with-non-standard-form-fields

    “非标准”的定义有点难找,但根据我的经验,它是任何非普通 html 输入的东西。 Listbox 是一个花哨的前端,所以它是合格的。文档中的示例可能令人困惑,但如果您使用的是 SS4 和最新的显示逻辑,请使用 Wrapper::create 而不是 DisplayLogicWrapper::create。如果你包装它,它应该可以工作。

    $codesList = Member::get()->column('Code');
    $codes = Wrapper::create(
        ListboxField::create('AccountPurchases','Account Purchases',$codesList);
    )->displayIf("DirectGroups")->contains("Sales Representative")->end();
    
    $fields->insertAfter('DirectGroups', $codes);
    

    【讨论】:

    • 您好,先生!首先,我要感谢您对我的查询提供反馈!现在,当我尝试上面的代码截图时,它给了我错误Uncaught BadMethodCallException: Object->__call(): extra method getName is invalid on UncleCheese\DisplayLogic\Criteria 你熟悉这个吗?是的,我在 SS4,所以只使用Wrapper
    • 你好先生@blueskies79?
    • 我不是先生 ;-) 我可能忘记了 Wrapper 语句末尾的 ->end() 。我在上面编辑了我的答案。这会有帮助吗?
    猜你喜欢
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    相关资源
    最近更新 更多