Laravel:将模型/行从一个连接复制到另一个

时间:2019-06-28 01:53:22

标签: laravel laravel-5 eloquent laravel-5.7

我想将雄辩的模型从一个连接复制到另一个。

到目前为止,我这样做的方式是这样的:

$users = User::on('connection1')->where('tenant', 'foo')->get();
User::on('connection2')->insert($users->toArray());

这在大多数情况下都有效。但是在某些情况下,这不起作用。例如:

  • 当模型具有$hidden属性时
  • 当模型的toArray方法被覆盖

将某些行简单复制到另一个连接的可靠方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以在雄辩的模型上利用class TabbarController: UITabBarController,UITabBarControllerDelegate { fileprivate lazy var defaultTabBarHeight = { tabBar.frame.size.height }() override func viewDidLayoutSubviews() { super.viewWillLayoutSubviews() let newTabBarHeight = defaultTabBarHeight + 10.0 var newFrame = tabBar.frame newFrame.size.height = newTabBarHeight newFrame.origin.y = view.frame.size.height - newTabBarHeight tabBar.frame = newFrame } } 方法,如下所示:

setConection()

我在另一个stackoverflow问题here

中发现了这个问题

答案 1 :(得分:0)

我认为我已经找到了$ hidden属性和覆盖toArray方法的解决方案

 $users = User::on('connection1')->where('tenant', 'foo')->get();

foreach ($users as $user) {
            $usersArray[] = $user->getAttributes();
        }
User::on('connection2')->insert($usersArray);

如果您使用的是MySql,建议您使用批量插入:

https://www.geeksengine.com/database/data-manipulation/bulk-insert.php