当前位置: 首页 > 知识库问答 >
问题:

是否从一个后端/构建器表单中为多个表设定种子?

葛修真
2023-03-14

我试图从一个(生成器)后端窗体/模型将数据插入到多个相关表中——但似乎我做错了什么。

t1帖子(用于model posts.php)

id, flag1, flag2 , created_at, updated_at

t2 post_content(用于模型Posts_content.php)

id, content

我尝试过扩展表单使用的模型(Posts.php),如octobercms的关系文档中所述:

public $hasOne = ['content' => ['Test\Gcn\Models\Post_content', 'key' => 'id', 'otherKey' => 'id']];

当通过后端控制器创建记录时,这不会产生错误,但实际上没有数据写入内容。

我也试过用代理字段来解决

领域。yaml(of model Posts.php)

post_content[content]:
label: 'Post here'
size: ''
mode: tab
span: full
type: markdown

Posts.php(带有代理字段)

public function formExtendModel($model)
{
    /*
     * Init proxy field model if we are creating the model
     */
    if ($this->action == 'create') {
        $model->post_content = new Post_content;
    }
    return $model;
}

根据错误消息,需要将数组设置为jsonable。但即使在这之后,它看起来还是试图将数据插入错误的表中。

实现这一目标的正确方法是什么?我正在尝试创建一个表单,用户可以在其中输入一些标志(复选框等)和一个文本字段,该字段应插入到具有正确id的post_内容表中。

感谢您的时间和帮助,谢谢!

共有1个答案

冯哲彦
2023-03-14

在我看来,你必须对你的结构做很多改变,如下所示:

1) 在帖子表中添加内容\u id

id, flag1, flag2, content_id, created_at, updated_at

第二个表应该是目录

id, content

内容id将用于在帖子和内容之间创建一对一的关系。有关关系的更多信息,请单击此处。

2)然后,你必须为帖子定义模型Post,为所有内容定义模型Content

在内容模型中,给出一对一的关系。

public $hasOne = [
        'post' => 'Test\Gcn\Models\Post'
    ];

如果您给出这种类型的关系,它将在您的帖子模型中找到content\u id,从而设置帖子和内容之间的直接关系。

3)您的表单字段应该像

在Post模型中fields.yaml

fields:
    flag1:
        label: 'Flag 1'
        oc.commentPosition: ''
        span: left
        type: text
    flag2:
        label: 'Flag 2'
        oc.commentPosition: ''
        span: auto
        type: text

在内容模型字段中。yaml应为

fields:
    post:
        label: Post
        oc.commentPosition: ''
        nameFrom: flag1
        descriptionFrom: description
        span: auto
        type: relation
    content:
        label: Content
        size: small
        oc.commentPosition: ''
        span: left
        type: textarea

列。yaml应为

columns:
    content:
        label: Content
        type: text
        searchable: true
        sortable: true
    post:
        label: Post
        select: flag1
        relation: post
        searchable: true
        sortable: true

有关后端的更多详细信息,您可以访问此处...1)窗体关系2)列关系。

这一切都是我这边的。现在分析所有这些并尝试您的代码。如果你有任何疑问,请告诉我。

谢谢你。

 类似资料:
  • 问题内容: 我正在建立一个网站,其中包含不同类型的项目,例如博客,帖子,文章等。用户可以将其中任何一个设置为他/她的最爱。现在,当我处理这个问题时,我有两个选择 为每种对象的用户收藏夹创建一个表。 为所有用户的所有类型的对象创建一个公用表。 第一种结构的问题是,我将不得不查询很多表以显示特定用户的收藏夹。但这将使我可以轻松地将收藏夹分为不同的类别。 但是,如果我必须在一个页面上显示所有收藏夹并将它

  • 我正在使用Jasper生成PDF报告。在jrxml文件中,我可以读取单个属性文件作为一个资源包,但这里我需要读取2个属性文件来生成报告作为一个双语(两种语言标签,一种是英语标签,另一种是本地语言标签)报告。是否可以在JasperReport中使用多个属性文件。还是有其他办法可以做到这一点?

  • 问题内容: 具有以下内容的HTML是否有效: 因此,当您提交“ b”时,您只会在内部表单中获得字段。提交“ a”时,您将得到减去“ b”中所有字段的所有字段。 如果不可能,那么针对这种情况有哪些解决方法可用? 问题答案: A. 无效的HTML或XHTML 在正式的W3C XHTML规范的B部分“元素禁止”中指出: 至于较早的[HTML 3.2规范,FORMS元素上的部分指出: “每个表单都必须包含

  • 假如现在有个表,主要使用的是两个字段,一个是 user_id,一个是 article_id。其中 article_id 是用户收藏的文章 id。一种方式是 article_id 只记录一个文章 id,通过创建多个集合来记录用户收藏的多个文章。一种方式是 article_id 是一个数组,记录用户收藏的多个文章。从性能角度或者是占用空间来看哪一种方式比较好?

  • 问题内容: 嘿,我有一个连接两个不相关表的Junction表。两个表都有。我需要使用不同的值从每个表中选择,例如,这就是我的看法: 我见过的所有示例都使用一条语句,但是两个表具有相同的值,在这种情况下,它们不是。 问题答案: 试试这个查询:

  • 问题内容: 我们有一个表格,其形式为: 我们需要将其转化为。 是否有一个聪明的方法可以在一个SELECT语句中执行此操作(即不使用UNION)?列名称Value1,Value2和Value3是固定的且恒定的。 该数据库是oracle 9i。 问题答案: 这适用于Oracle 10g: 我认为Oracle 9i有递归查询吗?无论如何,我非常确定它具有CASE支持,因此即使它没有递归查询,也可以执行“