diff --git a/packages/forms/src/Components/CheckboxList.php b/packages/forms/src/Components/CheckboxList.php index 5dd9494bd5..ecc9521b33 100644 --- a/packages/forms/src/Components/CheckboxList.php +++ b/packages/forms/src/Components/CheckboxList.php @@ -149,7 +149,13 @@ class CheckboxList extends Field implements Contracts\CanDisableOptions, Contrac $relationshipTitleAttribute = $component->getRelationshipTitleAttribute(); if (empty($relationshipQuery->getQuery()->orders)) { - $relationshipQuery->orderBy($relationshipQuery->qualifyColumn($relationshipTitleAttribute)); + $relationshipOrderByAttribute = $relationshipTitleAttribute; + + if (str_contains($relationshipOrderByAttribute, ' as ')) { + $relationshipOrderByAttribute = (string) str($relationshipOrderByAttribute)->before(' as '); + } + + $relationshipQuery->orderBy($relationshipQuery->qualifyColumn($relationshipOrderByAttribute)); } if (str_contains($relationshipTitleAttribute, '->')) { diff --git a/packages/forms/src/Components/Select.php b/packages/forms/src/Components/Select.php index 5afac390b8..db27b7c4fc 100644 --- a/packages/forms/src/Components/Select.php +++ b/packages/forms/src/Components/Select.php @@ -799,8 +799,8 @@ class Select extends Field implements Contracts\CanDisableOptions, Contracts\Has if (empty($relationshipQuery->getQuery()->orders)) { $relationshipOrderByAttribute = $relationshipTitleAttribute; - if (str_contains($relationshipTitleAttribute, ' as ')) { - $relationshipOrderByAttribute = substr($relationshipTitleAttribute, 0, strpos($relationshipTitleAttribute, ' as ')); + if (str_contains($relationshipOrderByAttribute, ' as ')) { + $relationshipOrderByAttribute = (string) str($relationshipOrderByAttribute)->before(' as '); } $relationshipQuery->orderBy($relationshipQuery->qualifyColumn($relationshipOrderByAttribute)); @@ -863,8 +863,8 @@ class Select extends Field implements Contracts\CanDisableOptions, Contracts\Has if (empty($relationshipQuery->getQuery()->orders)) { $relationshipOrderByAttribute = $relationshipTitleAttribute; - if (str_contains($relationshipTitleAttribute, ' as ')) { - $relationshipOrderByAttribute = substr($relationshipTitleAttribute, 0, strpos($relationshipTitleAttribute, ' as ')); + if (str_contains($relationshipOrderByAttribute, ' as ')) { + $relationshipOrderByAttribute = (string) str($relationshipOrderByAttribute)->before(' as '); } $relationshipQuery->orderBy($relationshipQuery->qualifyColumn($relationshipOrderByAttribute)); diff --git a/packages/tables/src/Columns/SelectColumn.php b/packages/tables/src/Columns/SelectColumn.php index 94d960c837..9874b7eabf 100644 --- a/packages/tables/src/Columns/SelectColumn.php +++ b/packages/tables/src/Columns/SelectColumn.php @@ -592,7 +592,13 @@ class SelectColumn extends Column implements Editable, HasEmbeddedView $relationshipTitleAttribute = $column->getOptionsRelationshipTitleAttribute(); if (empty($relationshipQuery->getQuery()->orders)) { - $relationshipQuery->orderBy($relationshipQuery->qualifyColumn($relationshipTitleAttribute)); + $relationshipOrderByAttribute = $relationshipTitleAttribute; + + if (str_contains($relationshipOrderByAttribute, ' as ')) { + $relationshipOrderByAttribute = (string) str($relationshipOrderByAttribute)->before(' as '); + } + + $relationshipQuery->orderBy($relationshipQuery->qualifyColumn($relationshipOrderByAttribute)); } if (str_contains($relationshipTitleAttribute, '->')) { @@ -646,7 +652,13 @@ class SelectColumn extends Column implements Editable, HasEmbeddedView $relationshipTitleAttribute = $column->getOptionsRelationshipTitleAttribute(); if (empty($relationshipQuery->getQuery()->orders)) { - $relationshipQuery->orderBy($relationshipQuery->qualifyColumn($relationshipTitleAttribute)); + $relationshipOrderByAttribute = $relationshipTitleAttribute; + + if (str_contains($relationshipOrderByAttribute, ' as ')) { + $relationshipOrderByAttribute = (string) str($relationshipOrderByAttribute)->before(' as '); + } + + $relationshipQuery->orderBy($relationshipQuery->qualifyColumn($relationshipOrderByAttribute)); } if (str_contains($relationshipTitleAttribute, '->')) { diff --git a/packages/tables/src/Filters/SelectFilter.php b/packages/tables/src/Filters/SelectFilter.php index 142d72b736..81fefcc1df 100644 --- a/packages/tables/src/Filters/SelectFilter.php +++ b/packages/tables/src/Filters/SelectFilter.php @@ -367,7 +367,13 @@ class SelectFilter extends BaseFilter $relationshipTitleAttribute = $component->getRelationshipTitleAttribute(); if (empty($relationshipQuery->getQuery()->orders)) { - $relationshipQuery->orderBy($relationshipQuery->qualifyColumn($relationshipTitleAttribute)); + $relationshipOrderByAttribute = $relationshipTitleAttribute; + + if (str_contains($relationshipOrderByAttribute, ' as ')) { + $relationshipOrderByAttribute = (string) str($relationshipOrderByAttribute)->before(' as '); + } + + $relationshipQuery->orderBy($relationshipQuery->qualifyColumn($relationshipOrderByAttribute)); } if (str_contains($relationshipTitleAttribute, '->')) { @@ -427,7 +433,13 @@ class SelectFilter extends BaseFilter $relationshipTitleAttribute = $component->getRelationshipTitleAttribute(); if (empty($relationshipQuery->getQuery()->orders)) { - $relationshipQuery->orderBy($relationshipQuery->qualifyColumn($relationshipTitleAttribute)); + $relationshipOrderByAttribute = $relationshipTitleAttribute; + + if (str_contains($relationshipOrderByAttribute, ' as ')) { + $relationshipOrderByAttribute = (string) str($relationshipOrderByAttribute)->before(' as '); + } + + $relationshipQuery->orderBy($relationshipQuery->qualifyColumn($relationshipOrderByAttribute)); } if (str_contains($relationshipTitleAttribute, '->')) {