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"
];

我的 titlecategory_description 可以很好地插入一个自动递增的 id 列。我想要做的只是添加 2 列:category_idcategory_description_2 只是复制 idcategory_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。