获取并推送新表中的数据

时间:2017-09-23 06:18:33

标签: php mysql laravel laravel-5 laravel-5.3

我有表'project','user'和'role_mapping'。我想从项目表中获取project_owner_id并推送在user_mapping table.one项目中从user table和role_id = 1获取的user_id所有者有多个项目。所以我想限制重复输入。我想在laravel控制器控制器中做到这一点。

project table
project_id   project name project_owner_id
 1             DEC01
 2             DEC02
 3             DEC01

user table
 id user_string
 1     DEC03
 2     DEC01
 3     DEC02

role_mapping table
user_id  role_id
 2        1
 3        1     

$heads = DB::table('project')
      ->join('users', 'project.project_owner_id', '=', 'users.user_string')
      ->select('project.project_owner_id','users.id as user_id')->get();
      foreach($heads as $head){
          print_r($head->project_owner_id);  
          print_r($head->user_id);            
      }

以下查询获取项目所有者ID和user_id.How以推送role_mapping表中的值

2 个答案:

答案 0 :(得分:1)

尝试引用这个,使用附加,分离在laravel:http://kaloraat.com/questions/laravel-attach-detach-and-sync-methods

希望这会有所帮助:)

答案 1 :(得分:1)

就像这样

假设您的模型名称为MappingTable

foreach($heads as $head){
   $mapTable = new MappingTable();
   $mapTable->user_id = $head->user_id;
   $mapTable->role_id = $head->project_owner_id;
   $mapTable->save();            
}

或者您可以像这样传递$data数组

$data = array(
    array('user_id'=>$head->user_id, 'role_id'=> ),
    array('user_id'=>$head->user_id, 'role_id'=> $head->project_owner_id),
    //...
);

MappingTable::insert($data); // Eloquent
DB::table('role_mapping table')->insert($data); // Query Builder