get($key); //按照权重从小到大排序执行 $observerConfigs = collect($observerConfigs)->sortBy('weight')->toArray(); $result = []; if($observerConfigs){ foreach ($observerConfigs as $pluginName=>$pluginOperators){ if(isset($pluginOperators) && $pluginOperators) { $class = array_get($pluginOperators,'class'); $function =array_get($pluginOperators,$operate == 'validator' ? 'function_validator':'function_save'); $data = array_get($model->widgets,$pluginName,[]); if(class_exists($class) && method_exists($class,$function) && is_callable([$class,$function])){ if (!$type) { $result[$pluginName] = $class::$function($model->id, $data, $operate); } else { $result[$pluginName] = $class::$function($model); } } } } } return $result; } }