Laravel查询和数组

时间:2016-11-18 08:04:45

标签: php laravel eloquent

请帮帮我。我想问一下:

假设我有2个表:user_masterpeople

现在我正在使用Laravel 5.1框架在PHP中构建一个应用程序,该框架从user_master表中选择数据(在where子句中有一些约束)并插入people表。< / p>

代码是:

public function handle() {
   $results = DB::select(DB::raw("SELECT * FROM user_master WHERE div_id = 1"));

   foreach ($results as $res) {
        //saving to array
        //insert query to table people here.
    }
}

我的问题是:

  1. 如何将select查询的结果保存到数组和
  2. 使用 RAW 查询(people)将该数组插入INSERT INTO people VALUES (...)表。
  3. P.S。:我的查询是 RAW 查询,使用Eloquent。请在没有Eloquent的情况下提供答案。

    非常感谢您的回答。

3 个答案:

答案 0 :(得分:1)

我做过像这样的场景

$users=DB::table('Users')->where('created_at' ,'>=','2016-09-06')->get();
        foreach ($users as $user){
            DB::table('users_report')->insert(
                array(
                    'id' => $user->id,
                    'username' => $user->username,
                    'lastname' => $user->lastname,
                    'email' => $user->email,
                    'created_at' => $user->created_at,
                    'updated_at' => $user->updated_at,
                    )
            );
        }

根据你的逻辑改变你的喜好,它的作品100%完美..

答案 1 :(得分:0)

如果您的表和主表具有相同的结构,则只需在下面的代码中设置主键即可。如果它们不在同一个结构中,你必须在插入peopel表之前将结果调整为人的结构。

希望它会有所帮助。

function delete_col(&$array, $offset) {
    return array_walk($array, function (&$v) use ($offset) {
        unset($v[$offset]);
    });
}
   public function handle() {
$results = DB::table('user_master')->where('div_id', 1)->get();
delete_col($results, $premiarykeyOfuser_master);

    DB::table('people')->insert($results);
    }

答案 2 :(得分:0)

我认为这是对的

$results = DB::table('user_master')->where('div_id', 1)->get();