【问题标题】:Dynamically object record Save into database using laravel使用 laravel 动态对象记录保存到数据库中
【发布时间】:2020-07-18 04:58:50
【问题描述】:

尊敬的先生/女士

我有以下格式的记录,并希望将其保存到 数据库,这个特定对象的属性经常不相似,它是可变的, 有时可能会更多,有时可能会更少

这个对象的属性是可变的,有时它可能是 更多,有时可能更少

{
    "name":"nabnit jha",
    "email":"028nabnit@gmail.com",
    "password":"123456",
    "c_password":"123456",
    "imgUrl":"sonujha.jpg"
}

如果对象属性不是动态的,我会这样做

    public function insert($data, $modelName)
    {
        $modelName->name = $data->name;
        $modelName->email = $data->email;
        $modelName->password = $data->password;
        $modelName->img_url = $data->imgUrl;
        $modelName->save();

        return response()->json([
            'message' => "Record Inserted Successfully"
        ]);
    }

我在做什么在动态情况下,我使用它但不起作用请帮助我

 public function insert($data, $modelName)
    {
        foreach ($data as $key => $value) {
            $modelName->$key = $value;
        }

        $modelName->save();

        return response()->json([
            'message' => "Record Inserted Successfully"
        ]);
    }

【问题讨论】:

  • 您应该使用json_encode()json_decode()将数据以json格式存储在单列中

标签: php laravel laravel-5 eloquent


【解决方案1】:

数据必须是数组

public function insert($data, $modelName)
{
    $modelName->fill($data)->save(); // or use forceFill()

    return response()->json([
        'message' => "Record Inserted Successfully"
    ]);
}

【讨论】:

  • 我如何将上面的对象转换为数组,请帮助我 { "name":"nabnit jha", "email":"028nabnit@gmail.com", "password":"123456", " c_password":"123456", "imgUrl":"sonujha.jpg" }
【解决方案2】:

如果有人有同样的问题,那么采取 $data = $request->input() 并使用 foreach 循环

更多详情请按以下步骤

第 1 步

class SignUp extends Controller
{
    //
    protected $users;
    public function __construct(Crud $crud)
    {
        $this->users = $crud;
        $this->Model = new RegisterSignUp;
    }

    public function singleUpload(Request $request)
    {
        $validatedData =  Validator::make(
            $request->all(),
            [
                'name' => 'required',
                'email' => 'required|email',
                'password' => 'required',
                'c_password' => 'required|same:password'
            ]
        );

        if ($validatedData->fails()) {
            return response()->json([
                'message' => "Validation Error"
            ]);
        }
        $model_name = $this->getModel();
        $result =  $this->users->insert($request->input(), $model_name);
        return $result;

        return response()->json([
            'message' => "Record Inserted Successfully"
        ]);
    }

    public function getModel()
    {
        return $this->Model;
    }
}

第 2 步

 public function insert($data, $modelName)
    {
        foreach ($data as $key => $value) {
            if ($key != 'c_password') {
                $modelName->$key = $value;
            }
        }
        $modelName->save();
        return response()->json([
            'message' => "Record Inserted Successfully"
        ]);
    }

【讨论】:

    猜你喜欢
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 2016-11-21
    相关资源
    最近更新 更多