如何返回所有插入的批量数据Laravel?

时间:2019-08-18 12:26:30

标签: laravel laravel-5 laravel-5.8

我在Laravel中使用批量插入:

if __name__ == '__main__':
    root = Tk()
    app = Script1.App(root)
    # Do something to set the entry
    Script1.App.a = app.get_entry_value()

return User::create($user); 是行数组。

如何将成功插入的行作为数组返回?

现在,它仅返回最后插入的模型。

完整代码是:

$user

我可以执行以下操作吗?

public function register(Request $request)
{

    foreach ($request->email as $key => $value) {
        $hashed = Hash::make($key);
        $user = [
            "name" => $request->get('name')[$key],
            "email" => $value,
            "password" => $hashed,
        ];
    }

    return User::create($user);
}

1 个答案:

答案 0 :(得分:1)

我认为这可行:

public function register(Request $request)
{
    $created = [];
    foreach ($request->email as $key => $value) {
        $hashed = Hash::make($key);
        $user = [
            "name" => $request->get('name')[$key],
            "email" => $value,
            "password" => $hashed,
        ];
        $created[] = User::create($user);
    }
    return $created;
}

或者,如果要使用批量插入,则必须选择插入的模型,如下所示:

public function register(Request $request)
{
    $users = [];
    foreach ($request->email as $key => $value) {
        $hashed = Hash::make($key);
        $users[] = [
            "name" => $request->get('name')[$key],
            "email" => $value,
            "password" => $hashed,
        ];
    }

    if(User::insert($users))
    {
        return User::whereIn('email', array_column($users, 'email'))->get();
    }

    return 'error';
}