public function processParamsAndDepends(& $params, & $neighbouring_values, $options, $flag_params = true) {
		foreach ($params as $k => $v) {
			if (is_array($v)) continue;
			// if we have a parent
			if (strpos($v, 'parent::') !== false) { // value from parent
				$field = str_replace(['parent::', 'static::'], '', $v);
				if (!empty($this->errors['fields'][$field]['danger'])) {
					$params[$k] = null;
				} else {
					$params[$k] = $this->values[$field] ?? null;
				}
			} else if (strpos($v, 'detail::') !== false) { // if we need to grab value from detail
				$field = str_replace('detail::', '', $v);
				$params[$k] = $neighbouring_values[$field] ?? $options['options']['__detail_values'][$field] ?? null;
			} else if ($flag_params) {
				// todo process errors
				// todo process details
				if (!empty($this->fields[$v]['options']['multiple_column']) && is_array(current($neighbouring_values[$v] ?? []))) {
					$params[$k] = array_extract_values_by_key($neighbouring_values[$v] ?? [], $this->fields[$v]['options']['multiple_column']);
				} else {
					$params[$k] = $neighbouring_values[$v] ?? null;
				}
			}
		}
	}
public function processParamsAndDepends(& $params, & $neighbouring_values, $options, $flag_params = true) {
		foreach ($params as $k => $v) {
			if (is_array($v)) continue;
			// if we have a parent
			if (strpos($v, 'parent::') !== false) { // value from parent
				$field = str_replace(['parent::', 'static::'], '', $v);
				if (!empty($this->errors['fields'][$field]['danger'])) {
					$params[$k] = null;
				} else {
					$params[$k] = $this->values[$field] ?? null;
				}
			} else if (strpos($v, 'detail::') !== false) { // if we need to grab value from detail
				$field = str_replace('detail::', '', $v);
				$params[$k] = $neighbouring_values[$field] ?? $options['options']['__detail_values'][$field] ?? null;
			} else if ($flag_params) {
				// todo process errors
				// todo process details
				if (!empty($this->fields[$v]['options']['multiple_column']) && is_array(current($neighbouring_values[$v] ?? []))) {
					$params[$k] = array_extract_values_by_key($neighbouring_values[$v] ?? [], $this->fields[$v]['options']['multiple_column']);
				} else {
					$params[$k] = $neighbouring_values[$v] ?? null;
				}
			}
		}
	}
public function processParamsAndDepends ( & $ params , & $ neighbouring_values , $ options , $ flag_params = true ) { foreach ( $ params as $ k => $ v ) { if ( is_array ( $ v ) ) continue ; // if we have a parent if ( strpos ( $ v , 'parent::' ) !== false ) { // value from parent $ field = str_replace ( [ 'parent::' , 'static::' ] , '' , $ v ) ; if ( ! empty ( $ this -> errors [ 'fields' ] [ $ field ] [ 'danger' ] ) ) { $ params [ $ k ] = null ; } else { $ params [ $ k ] = $ this -> values [ $ field ] ?? null ; } } else if ( strpos ( $ v , 'detail::' ) !== false ) { // if we need to grab value from detail $ field = str_replace ( 'detail::' , '' , $ v ) ; $ params [ $ k ] = $ neighbouring_values [ $ field ] ?? $ options [ 'options' ] [ '__detail_values' ] [ $ field ] ?? null ; } else if ( $ flag_params ) { // todo process errors // todo process details if ( ! empty ( $ this -> fields [ $ v ] [ 'options' ] [ 'multiple_column' ] ) && is_array ( current ( $ neighbouring_values [ $ v ] ?? [ ] ) ) ) { $ params [ $ k ] = array_extract_values_by_key ( $ neighbouring_values [ $ v ] ?? [ ] , $ this -> fields [ $ v ] [ 'options' ] [ 'multiple_column' ] ) ; } else { $ params [ $ k ] = $ neighbouring_values [ $ v ] ?? null ; } } } }
Process depends and params

@param array $params
@param array $neighbouring_values
@param array $options
@param boolean $flag_params
Process depends and params