Laravel 模型如何获得 "required" 数据?新列,添加另一列的数据
How does a Laravel model get a "required" data? New column, adding another column's data
laravel 还是个新手,了解 $request 如何与 create 交互。
这是我的两个上下文变量的表格:
<form method="POST" id="postForm">
{{-- @csrf --}}
<input type="hidden" id="id_hidden" name="id" />
<div class="form-group">
<label for="title"> Title <span class="text-danger">*</span></label>
<input type="text" name="title" id="title" class="form-control">
</div>
<div class="form-group">
<label for="category_description"> Description <span class="text-danger">*</span></label>
<textarea name="category_description" id="category_description" class="form-control"></textarea>
</div>
</form>
控制器:
public function store(Request $request)
{
$request->validate([
'title' => 'required',
'category_description' => 'required',
]);
$post = HmsBbrCategory::create($request->all());
if(!is_null($post)) {
return response()->json(["status" => "success", "message" => "Success! post created.", "data" => $post]);
}
else {
return response()->json(["status" => "failed", "message" => "Alert! post not created"]);
}
}
型号:
protected $table = 'hms_bbr_category';
protected $fillable = [
"category_id", "title", "category_description", "category_description_2"
];
我的 title
和 category_description
可以很好地插入一个自动递增的 id 列。我想要做的只是添加 2 列:category_id
和 category_description_2
只是复制 id
和 category_description
插入的值
问题:
'required'
如何从表单中检索数据?我想获取相同的数据并将其添加到我的两个新列中。我知道我不能简单地添加 'category_description_2' => 'required',
因为这不会获得现有数据。
所以基本上
$id = id
$category_id = id
$title = title
$category_description = category_description
$category_description_2 = category_description
1
这是我的table供参考。这张表格是给我的,我想了解更多关于 Laravel 的信息,感谢阅读,我希望我能得到一些关于添加内容的建议。
您正在 运行ning ->validate([])
$request 变量,该变量获取 laravel 在 post 请求期间汇总的所有信息。如果你这样做
dd($request->all());
您将能够看到从您可以 运行 不同验证规则的表单传递的所有数据。
如果您想将其他数据添加到您的 $request
变量中以便将其保存到您的模型中,您可以随时将其添加到 $request
数组中,如下所示:$request['variable_1'] = 'data for variable one'
等等
因为我看到你有 category_id
你想在你保存的记录中引用,我建议你在你的 HmsBbrCategory
模型和 [=16] 的父模型中创建一个关系=] 属于。这将帮助您保持数据库的完整性。
作为另一种选择,您可以通过将 category_id
传递给控制器中的存储方法的方式构建 url。然后您需要找到该类别 ID 并确保它存在并通过您创建的关系保存它:
public function store (Request $request, $category_id){
$main_category = Category:find($category_id); //make sure it exists
$new_record = $main_category->exampleRelation()->save($request->all());
if(!$new_record){
return failed save
}
return successful save message
}
通过执行上述操作,它会自动将 category_id
插入到您保存的记录中。
作为另一种选择,您可以在表单中创建一个隐藏字段,该字段引用 category_id
以及您希望在保存时添加到记录中的其他字段。但是,请记住,如果有人决定在浏览器上查看源代码,您希望用户看到哪些“敏感”信息 window。
laravel 还是个新手,了解 $request 如何与 create 交互。
这是我的两个上下文变量的表格:
<form method="POST" id="postForm">
{{-- @csrf --}}
<input type="hidden" id="id_hidden" name="id" />
<div class="form-group">
<label for="title"> Title <span class="text-danger">*</span></label>
<input type="text" name="title" id="title" class="form-control">
</div>
<div class="form-group">
<label for="category_description"> Description <span class="text-danger">*</span></label>
<textarea name="category_description" id="category_description" class="form-control"></textarea>
</div>
</form>
控制器:
public function store(Request $request)
{
$request->validate([
'title' => 'required',
'category_description' => 'required',
]);
$post = HmsBbrCategory::create($request->all());
if(!is_null($post)) {
return response()->json(["status" => "success", "message" => "Success! post created.", "data" => $post]);
}
else {
return response()->json(["status" => "failed", "message" => "Alert! post not created"]);
}
}
型号:
protected $table = 'hms_bbr_category';
protected $fillable = [
"category_id", "title", "category_description", "category_description_2"
];
我的 title
和 category_description
可以很好地插入一个自动递增的 id 列。我想要做的只是添加 2 列:category_id
和 category_description_2
只是复制 id
和 category_description
问题:
'required'
如何从表单中检索数据?我想获取相同的数据并将其添加到我的两个新列中。我知道我不能简单地添加 'category_description_2' => 'required',
因为这不会获得现有数据。
所以基本上
$id = id
$category_id = id
$title = title
$category_description = category_description
$category_description_2 = category_description
1
这是我的table供参考。这张表格是给我的,我想了解更多关于 Laravel 的信息,感谢阅读,我希望我能得到一些关于添加内容的建议。
您正在 运行ning ->validate([])
$request 变量,该变量获取 laravel 在 post 请求期间汇总的所有信息。如果你这样做
dd($request->all());
您将能够看到从您可以 运行 不同验证规则的表单传递的所有数据。
如果您想将其他数据添加到您的 $request
变量中以便将其保存到您的模型中,您可以随时将其添加到 $request
数组中,如下所示:$request['variable_1'] = 'data for variable one'
等等
因为我看到你有 category_id
你想在你保存的记录中引用,我建议你在你的 HmsBbrCategory
模型和 [=16] 的父模型中创建一个关系=] 属于。这将帮助您保持数据库的完整性。
作为另一种选择,您可以通过将 category_id
传递给控制器中的存储方法的方式构建 url。然后您需要找到该类别 ID 并确保它存在并通过您创建的关系保存它:
public function store (Request $request, $category_id){
$main_category = Category:find($category_id); //make sure it exists
$new_record = $main_category->exampleRelation()->save($request->all());
if(!$new_record){
return failed save
}
return successful save message
}
通过执行上述操作,它会自动将 category_id
插入到您保存的记录中。
作为另一种选择,您可以在表单中创建一个隐藏字段,该字段引用 category_id
以及您希望在保存时添加到记录中的其他字段。但是,请记住,如果有人决定在浏览器上查看源代码,您希望用户看到哪些“敏感”信息 window。