【问题标题】:update list of colors in update controller laravel更新更新控制器 laravel 中的颜色列表
【发布时间】:2022-01-23 17:18:01
【问题描述】:

我从我的产品的颜色中获得了每种价值。任何产品都可以赋予多种颜色 这种颜色将其保存在接口表中,用于每个。 我的每个商店

foreach ($request->addcolor as $colorss) {
        foreach ($colorss as $item){
            if(!empty($item['color_id'])){
                $color = ColorProduct::create([
                    'product_id' => $product->id,
                    'color_id' => $item['color_id'],
                    'color_body'=>$request->input('color_body'),
                    'color_handle' => $request->input('color_handle'),
                    'color_handle_head' => $request->input('color_handle_head'),
                    'productable' => Product::class
                ]);
            }
        }
    }

我为每个人写了更新

    if($request->addcolor ){

        $color_product = ColorProduct::where('product_id' , $product->id)->get();
        foreach ($request->addcolor as $keys => $colorsis) {
            $color = $color_product->where('color_id' , $keys)->first();
            if ($color) {
                foreach ($request->addcolor as $colorss) {
                    foreach ($colorss as $item){
                        if(!empty($item['color_id'])){
                            $item['color_id'] = $request->input ('color_id');
                            $item['color_body']= $request->input('color_body');
                            $item['color_handle'] = $request->input('color_handle');
                            $item['color_handle_head'] =  $request->input('color_handle_head');
                        }

                    }
                }
            } else {
                foreach ($colorss as $procol){
                    if(!empty($procol['color_id'])){
                        $color = ColorProduct::create([
                            'product_id' => $product->id,
                            'color_id' => $procol['color_id'],
                            'productable' => Product::class
                        ]);
                    }
                }
            }
        }
        $duplicateArgs= DB::table('color_products')
            ->select('product_id' , 'color_id' , DB::raw('count(*) as total'))
            ->groupBy('product_id' , 'color_id')
            ->get();
        foreach ($duplicateArgs as $item){
            if($item->total>1){
                for ($i = 1; $i < $item->total; $i++){
                    $duplicate = ColorProduct::where('product_id' , $item->product_id)
                        ->where('color_id' , $item->color_id)->orderBy('id' , 'Desc')->first();
                    $duplicate->delete();
                }
            }
        }
    

如何更新色体、色柄、色柄头?我只能更新色id

感谢您的帮助

【问题讨论】:

  • 哪里有更新?

标签: laravel sql-update


【解决方案1】:

我对这里的数据结构有点不清楚,但也许你需要在你的第一个 foreach 中做这样的事情?

$color->update([
    'color_id' = $request->input ('color_id'),
    'color_body' = $request->input('color_body'),
    'color_handle' = $request->input('color_handle'),
    'color_handle_head' =  $request->input('color_handle_head')
]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 2014-05-26
    • 1970-01-01
    • 2015-10-09
    相关资源
    最近更新 更多