Laravel 在数据库中动态存储数据

Laravel 在数据库中动态存储数据,laravel,Laravel,我想在数据库中动态保存文章输入这是我现在的代码,我想动态保存第二段、第二段列表、第三段我应该如何更改代码 财务总监: public function store(Request $request) { $index_imageName = $request->file('index_image')->store('uploads'); $header_videoName = $request->file('header_image')-&

我想在数据库中动态保存文章输入这是我现在的代码,我想动态保存第二段、第二段列表、第三段我应该如何更改代码

财务总监:

public function store(Request $request)
    {
        $index_imageName = $request->file('index_image')->store('uploads');
        $header_videoName = $request->file('header_image')->store('uploads');
        $text_imageName = $request->file('text_image')->store('uploads');

        $new_file_data=[
            'small_explain'=>$request->input('small_explain'),
            'title'=>$request->input('title'),
            'paragraph_one'=>$request->input('paragraph_one'),
            'paragraph_two'=>$request->input('paragraph_two'),
            'paragraph_list'=>$request->input('paragraph_list'),
            'paragraph_three'=>$request->input('paragraph_three'),
            'important_body'=>$request->input('important_body'),
            'quote'=>$request->input('quote'),
            'author_quote'=>$request->input('author_quote'),
            //image storage
            'index_image' => $index_imageName,
            'header_image' => $header_videoName,
            'text_image' => $text_imageName,
            ];
        Article::create($new_file_data);
    }
这是刀片的一部分:

<div class="form-group row" id="paragraph">
   <label class="col-12 col-sm-3 col-form-label text-sm-right">پاراگراف اول</label>
        <div class="col-12 col-sm-8 col-lg-6">
             <textarea required="" class="form-control" id="paragraph" name="paragraph_one"></textarea>
         <br>
              <button type="button" class="btn " id="button" onclick="myFunction()" 
                                    style="color: white ; background-color: #242849">افزودن پاراگراف
              </button>
        </div>
</div>
 @section('scripts')
    <script>
        function myFunction() {
           var x = document.createElement("TEXTAREA");
           var t = document.createTextNode("اینجا بنویسید");
               x.appendChild(t);

           document.getElementById("paragraph").appendChild(x);
                            }
    </script>
 @endsection
我对laravel是新手,我真的不知道我的代码需要做哪些更改才能使其动态
动态的意思是:我有一个段落,它的名字是段落一,用户可以添加段落二,三,四。。。。并保存在数据库中
我想知道怎么做

您需要创建另一个表。比方说

article_paragraphs
使用以下字段(仅作为示例,您可以根据需要进行修改):
id、文本、文章id(fk)


我希望你明白了

好吧,我想我明白你的意思了

用户可以向表单中添加X个段落。然后你想保存这些段落,但你不知道每个用户创建了多少。可以是1和100

因此,有多种方法可以构建这样的架构。我需要指出的是,在不触碰任何人的情况下,我会这样做。但同样,设计它的方法很多

  • 选项(IMO最佳选项):
  • 2个表: 1.这是你的文章。 2.是您的段落,您可以在
    article\u ID
    列中链接回您的文章ID。然后您可以根据文章ID找到所有段落

  • 选项:
  • 将它们放入
    数组()
    ,然后将其存储在文章表中,例如,将它们另存为
    数组()
    并将段落推送到该
    数组中,
    并将该数组保存在文章表的
    段落数组中


    在JS中,您希望将它们称为段落1、段落2等,而不是段落1、段落2。每当一个人创建一个新段落时,您都会用该段落的编号更新一个
    ,例如5


    然后在您的控制器中为(x=0,xcount para,x++){code>

    执行
    ,您使用“动态”的确切含义是什么?但是,如果您只想保存数据(不知道在本例中动态是什么意思),您可以使用POST方法将字段放在
    元素中
    (记住表单中的CSRF标记)。这个POST请求你在你的routes文件中捕获,然后指向你保存在DB中的控制器。我有一个段落,它的名称是段落1,用户可以添加段落2、3、4。。。。并将其保存在数据库中,我想知道如何操作。用户是否可以只将第三段相加,这是在迁移中声明的?如果没有,他们可以拥有他们需要的所有段落,这不是您需要的架构。我试着回答你,你目前的数据库设计太死板;任何时候,你都有了<代码> Cuxnxx/Cuth>(X是一个数字),考虑使用一个适当的关系结构,即一个单独的<代码>段落< /代码>表,通过本地/外键链接到父表。我想我明白了,但是我的控制器如何将数据发送到数据库?你必须相应地更改代码。你将从客户端发送一个段落数组(在你的表单中,你可以发送一个输入数组,如果你还不知道,用谷歌搜索),然后你将创建一篇文章的记录,然后你将使用段落数组在article_段落表中创建条目。个人意见,但我不喜欢数据库中的数组。只要DB支持JSON列和搜索,JSON数组是可以的(但仍然不是很好),但人们经常使用CSV字符串数组(
    '[1,2,3]')
    并在搜索/索引等方面遇到更多问题。我完全同意,这只是给OP提供不同选择的一种方式。但是我也不喜欢它,并且在接下来的几个小时里会产生大量的问题/开发时间。我认为选项1更好,我应该创建另一个表,并且应该有文本和带有外键的段落id列,将这个表连接到文章表,对吗?我的控制器怎么了?
    article_paragraphs