public static function resolveForeignKeyColumnMetadata($name, $relatedModelClass = null) { if (!isset($name)) { if (isset($relatedModelClass)) { $name = static::resolveForeignKeyNameByModelName($relatedModelClass); } else { throw new NotSupportedException(); } } // this is foreign key, we force it to be assumed unsigned. $unsigned = DatabaseCompatibilityUtil::resolveUnsignedByHintType('integer', false, $name); return static::resolveColumnMetadataByHintType($name, 'integer', null, $unsigned); }
protected static function getReservedColumnMetadata() { $columns = array(); $reservedColumnsTypes = array('status' => 'integer', 'serializedMessages' => 'string', 'analysisStatus' => 'integer', 'serializedAnalysisMessages' => 'string'); foreach ($reservedColumnsTypes as $columnName => $type) { $length = null; $unsigned = null; if ($type === 'string') { // populate the proper type given it would be 1024 char string depending on db type. RedBeanModelMemberRulesToColumnAdapter::resolveStringTypeAndLengthByMaxLength($type, $length, 1024); } else { // forcing integers to be unsigned $unsigned = DatabaseCompatibilityUtil::resolveUnsignedByHintType($type, false); } // last argument is false because we do not want these column names to be resolved to lower characters $columns[] = RedBeanModelMemberToColumnUtil::resolveColumnMetadataByHintType($columnName, $type, $length, $unsigned, null, null, null, false); } return $columns; }