【问题标题】:How to save updated data only after admin verification in Laravel如何仅在 Laravel 中进行管理员验证后保存更新的数据
【发布时间】:2018-11-13 07:15:50
【问题描述】:

我有两个用户:一个管理员和另一个简单用户。当用户想要编辑数据时,它会向管理员请求“等待验证”;只有在验证后,数据才会更新。这是表状态列的图像:

用户编辑数据时,状态为4,验证时必须为5。请问如何保存旧数据直到新数据未验证时以及验证后如何替换?

【问题讨论】:

  • 有谁需要帮助吗?
  • 我认为您需要创建两个单独的表,1. 存储用户验证数据和另一个用于待定状态的更改数据,一旦验证管理员,您需要用更改数据替换用户数据并更改状态验证。您应该将更改数据以 JSON 格式存储在数据库中
  • 在使用简单用户编辑时,您可以在数据库表中创建另一行,其中包含已编辑的数据和暂挂状态为临时,管理员接受编辑的数据后,用主数据替换此数据并删除此临时数据,如果管理员拒绝,只删除临时数据
  • 你能帮我提供代码来保存临时数据并在验证时替换它吗?
  • #behzad-dadashpour 你是否通过提供代码来帮助我保存临时数据并在验证时替换它?

标签: php laravel


【解决方案1】:

您可以使用这种方式来解决此问题。 (当然,这是我的观点)

将数据保存在表格中,并在此字段中添加一个带有状态名称的新列,以检查数据是否已经过验证。

将信息保存在不同的表中。接口表!!!然后,当管理员验证使用身份接口时,粘贴这些新值,然后在插入新值后从接口表中删除它们

【讨论】:

  • 是的,我明白,但需要代码来保存临时数据并在 laravel 中批准时替换它。
  • 将信息保存在不同的表中。接口表!!!然后,当管理员验证使用身份接口时,粘贴这些新值,然后在插入新值后从接口表中删除它们。
  • 需要与临时数据在同一张表上
【解决方案2】:

我认为是这样的:

  1. 使用当前表的外键创建临时表
  2. 创建临时模型
  3. 用户变更:

    $newItem = new TempModel($someRequestData);
    $item->some_foreign_key_name = $request->input('id');
    $item->save();
    
  4. 管理员验证:

    $newItem = TempModel::where('some_foreign_key_name', $request->input('id'))->first();
    $oldItem = Model::find($request->input('id'));
    $oldItem->fill($newItem->toArray());
    $oldItem->save();
    $newItem->delete();
    
  5. 如果您不使用 $fillable,则将 $guarded 添加到当前模型:

    protected $guarded = ['some_foreign_key_name'];
    

【讨论】:

    猜你喜欢
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 2014-10-08
    • 2020-12-28
    • 2020-07-12
    • 2022-01-04
    • 2015-01-02
    相关资源
    最近更新 更多