Merge pull request #17830 from f-liva/4.x

fix: handle 'as' alias in orderBy correctly in Select component
This commit is contained in:
Dan Harrin
2025-09-16 20:44:56 +01:00
committed by GitHub
4 changed files with 49 additions and 7 deletions
@@ -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, '->')) {
+14 -2
View File
@@ -797,7 +797,13 @@ class Select extends Field implements Contracts\CanDisableOptions, Contracts\Has
$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, '->')) {
@@ -855,7 +861,13 @@ class Select extends Field implements Contracts\CanDisableOptions, Contracts\Has
$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, '->')) {
+14 -2
View File
@@ -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, '->')) {
+14 -2
View File
@@ -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, '->')) {