【问题标题】:October cms checkbox list secondary description error十月 cms 复选框列表二级描述错误
【发布时间】:2017-06-15 08:24:03
【问题描述】:

我有产品和类别表以及产品和类别模型。

正如documentation中所写:

1) 我在“plugins/author/plugin_name/models/product/fileds.yaml”文件中添加了几行。

categories:
   label: Categories
   type: dropdown
   options: listCategories

2) 我还修改了“plugins/author/plugin_name/models/Product.php”文件。

public function listCategories()
   {
      $cats = \Db::table('author_plugin_name_categories')->lists('name');
      return $cats;
   }

然后它会在我的产品创建/更新页面上显示类别列表。

另外,我发现下拉类型支持二级描述,所以我可以在“listCategories”函数中返回关联数组。这是一个很好的契机。不幸的是,它仅适用于下拉类型。

于是出现了以下问题。我想将辅助描述应用于checkbox list 类型的字段或tag list widget。尽管复选框列表支持辅助描述,但当我尝试应用辅助描述时会发生错误。

可能有人可以帮我解决它吗?我想使用带有复选框列表或标签列表小部件的辅助描述,这样我就可以在我的产品项目中显示猫的列表,并且只将它们的 ID 保存到产品表中。

【问题讨论】:

    标签: php octobercms


    【解决方案1】:

    为了保存多个值,需要在模型文件中设置模型属性为jsonable:

    protected $jsonable = ['categories'];
    

    【讨论】:

    • 当您尝试保存模型并且某些值的类型错误时,会引发 jsonable 错误。您是否在模型中正确定义了类别关系?
    • 我只想为复选框列表实现关联数组,也可以在下拉列表中实现。我想在我的复选框表单中显示值,并且只在保存事件return ['name_1' => 'Bob', 'name_2' => 'John'] 时从它们那里获取键。问题是复选框列表在任何情况下都不起作用,即使它在文档示例中显示。
    • 您应该使用关系而不是手动字段(看看here)但是如果您按照自己的方式进行操作并将类别值直接保存到产品中,那么您必须将protected $jsonable = ['categories']; 添加到产品型号
    • 非常感谢,现在可以使用了!正是我想要的。是的,我想将类别直接保存到每个产品中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 2017-11-06
    • 2015-12-17
    • 2016-06-07
    • 2019-01-13
    相关资源
    最近更新 更多