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'); }