为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 laravel 中使用 foreach 将数据添加到数据库中

如何在 laravel 中使用 foreach 将数据添加到数据库中

PHP
慕姐4208626 2022-05-27 15:04:39
我想将所有数据从post表中移到CityPost表中,我使用foreach但为什么只有一个数据条目, $store = new CityPost;           $post = Post::all();           foreach($post as $p){               $store->user_id = 14;                $store->title = $v->title;               $store->desc = $v->desc;               $store->save();           }           dd($store);我希望表格user_id中的所有人PostCity都是 14
查看完整描述

2 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

您应该在 foreach 中创建 CityPost 模型:


       $post = Post::all();

       foreach($post as $p){

           $store = new CityPost;

           $store->user_id = 14; 

           $store->title = $v->title;

           $store->desc = $v->desc;

           $store->save();        

       }

       dd($store);


查看完整回答
反对 回复 2022-05-27
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

你可以做的是尝试不同的方式,如下所示


$post = Post::all();

$stores = [];

foreach($post as $p){

    $store = new CityPost;

    $store->user_id = 14; 

    $store->title = $v->title;

    $store->desc = $v->desc;

    $stores[] = $store->save();


   //if $store->save() is boolean then you can use create method use save() or create() only one


   $new = CityPost::create(['user_id'=>14,'title'=>$p->title,'desc'=>$p->desc]);

   $stores[] = $new;

}

dd($stores);

或者您可以尝试另一种方式,例如批量更新,而无需多次调用DB


    $post = Post::all();

    $data = [];

    foreach($post as $p){

        $store->user_id = 14; 

        $store->title = $v->title;

        $store->desc = $v->desc;

        $data[] = ['user_id'=>$store->user_id,'title'=>$p->title,'desc'=>$p->desc];

    }

    CityPost::insert($data);


查看完整回答
反对 回复 2022-05-27
  • 2 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信