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