Exemplo n.º 1
0
 public function add(Request $request)
 {
     $user = \Session::get('user');
     if (!$user->can('产品参数管理')) {
         abort(401);
     }
     $param = new Param();
     $param->name = $request->input('name');
     $param->description = $request->input('description');
     $param->code = $request->input('code');
     $param->value = $request->input('value');
     $product = Product::find($request->input('product_id'));
     $param->product()->associate($product);
     $param->save();
     \Log::notice(strtr('产品参数增加: 用户 (%name[%id]) 增加了产品 (%product_name[%product_id] 参数(%param_name[%param_id]) : %value', ['%name' => $user->name, '%id' => $user->id, '%product_name' => $product->name, '%product_id' => $product->id, '%param_name' => $param->name, '%param_id' => $param->id, '%value' => $param->value]));
     //新增加的参数, 同步到所有的子产品中
     foreach ($product->sub_products as $sub) {
         //同步到所有的子产品中
         $sub->params()->save($param, ['value' => $param->value]);
         \Log::notice(strtr('子产品参数增加: 用户 (%name[%id]) 增加了子产品 (%product_name[%product_id] 参数(%param_name[%param_id]) : %value', ['%name' => $user->name, '%id' => $user->id, '%product_name' => $sub->name, '%product_id' => $sub->id, '%param_name' => $param->name, '%param_id' => $param->id, '%value' => $param->value]));
         //同步到所有的子产品签约的项目中
         foreach ($sub->projects as $project) {
             $project->params()->save($param, ['value' => $param->value]);
             \Log::notice(strtr('项目参数增加: 用户 (%name[%id]) 增加了项目 (%project_name[%project_id] 参数(%param_name[%param_id]) : %value', ['%name' => $user->name, '%id' => $user->id, '%project_name' => $project->name, '%project_id' => $project->id, '%param_name' => $param->name, '%param_id' => $param->id, '%value' => $param->value]));
         }
     }
     return redirect()->back()->with('message_content', '添加成功!')->with('message_type', 'info');
 }