R Robert9 Well-known member Feb 22, 2023 #1 $itemFinder->order('rating_avg', desc, 'rating_count', 'desc') It seems this does not work. How can use two columns, please?
$itemFinder->order('rating_avg', desc, 'rating_count', 'desc') It seems this does not work. How can use two columns, please?
mattrogowski Well-known member Feb 22, 2023 #2 $itemFinder->order(['rating_avg' => 'desc', 'rating_count' => 'desc'])
R Robert9 Well-known member Feb 22, 2023 #3 InvalidArgumentException: Unknown column desc on R9\Item:Item in src/XF/Mvc/Entity/Finder.php at line 1694 $itemFinder->order(['comment_count', 'create_date' ], 'desc'); => ORDER BY xf_r9_item_item.comment_count DESC, xf_r9_item_item.create_date DESC but i need different directions also ORDER BY xf_r9_item_item.comment_count ASC, xf_r9_item_item.create_date DESC Last edited: Feb 22, 2023
InvalidArgumentException: Unknown column desc on R9\Item:Item in src/XF/Mvc/Entity/Finder.php at line 1694 $itemFinder->order(['comment_count', 'create_date' ], 'desc'); => ORDER BY xf_r9_item_item.comment_count DESC, xf_r9_item_item.create_date DESC but i need different directions also ORDER BY xf_r9_item_item.comment_count ASC, xf_r9_item_item.create_date DESC
mattrogowski Well-known member Feb 22, 2023 #4 Probably coming from somewhere else as that’s the correct array syntax.
R Robert9 Well-known member Feb 22, 2023 #5 See code above, it works, but only with one direction for both columns.
mattrogowski Well-known member Feb 22, 2023 #6 Yeah, so that’s not the same format as I posted. It needs to be a key => val array like my example, you can specify a different order for each field.
Yeah, so that’s not the same format as I posted. It needs to be a key => val array like my example, you can specify a different order for each field.
mattrogowski Well-known member Feb 22, 2023 #7 $itemFinder->order(['comment_count' => 'asc', 'create_date' => 'desc'])
R Robert9 Well-known member Feb 22, 2023 #8 Thank you, but your code does not work for me: $itemFinder->order(['comment_count' => 'asc', 'create_date' => 'desc']); => error-message ist on this line and says that there is no column: asc This code works, but miss different directions $itemFinder->order(['comment_count', 'create_date'],'desc');
Thank you, but your code does not work for me: $itemFinder->order(['comment_count' => 'asc', 'create_date' => 'desc']); => error-message ist on this line and says that there is no column: asc This code works, but miss different directions $itemFinder->order(['comment_count', 'create_date'],'desc');
R Robert9 Well-known member Feb 22, 2023 #9 This also does not work: $itemFinder->order(['comment_count' => 'desc']);
R Robert9 Well-known member Feb 22, 2023 #10 but maybe this will help Entities, finders, and repositories | Developer Documentation | XenForo Developer documentation for XenForo xenforo.com Code: $finder = \XF::finder('XF:User'); $users = $finder->order('message_count', 'DESC')->order('register_date')->limit(10); Last edited: Feb 22, 2023
but maybe this will help Entities, finders, and repositories | Developer Documentation | XenForo Developer documentation for XenForo xenforo.com Code: $finder = \XF::finder('XF:User'); $users = $finder->order('message_count', 'DESC')->order('register_date')->limit(10);
mattrogowski Well-known member Feb 22, 2023 #11 Oh, my bad: $itemFinder->order([['comment_count', 'asc'],['create_date', 'desc']]) Tested it this time Last edited: Feb 22, 2023
Oh, my bad: $itemFinder->order([['comment_count', 'asc'],['create_date', 'desc']]) Tested it this time
R Robert9 Well-known member Feb 22, 2023 #12 Very nice, now i can do: $itemFinder->order('rating_count', $direction)->order('rating_avg','desc')->order('create_date','desc'); real example: ORDER BY `xf_r9_item_item`.`rating_count` DESC, `xf_r9_item_item`.`rating_avg` DESC, `xf_r9_item_item`.`create_date` DESC;
Very nice, now i can do: $itemFinder->order('rating_count', $direction)->order('rating_avg','desc')->order('create_date','desc'); real example: ORDER BY `xf_r9_item_item`.`rating_count` DESC, `xf_r9_item_item`.`rating_avg` DESC, `xf_r9_item_item`.`create_date` DESC;
R Robert9 Well-known member Feb 22, 2023 #13 I guess, i have tried this, but will try again. Thank you. To add ->order->order ... makes sense for me, because i can save some code.
I guess, i have tried this, but will try again. Thank you. To add ->order->order ... makes sense for me, because i can save some code.
mattrogowski Well-known member Feb 22, 2023 #14 Yours had multiple fields in the first array, this one is an array of column => order arrays.
R Robert9 Well-known member Feb 22, 2023 #15 Is there any difference? $itemFinder->order('comment_count', $direction)->order('create_date','desc'); $itemFinder->order([['comment_count', $direction],['create_date', 'desc']]);
Is there any difference? $itemFinder->order('comment_count', $direction)->order('create_date','desc'); $itemFinder->order([['comment_count', $direction],['create_date', 'desc']]);
mattrogowski Well-known member Feb 22, 2023 #16 Just personal preference, usually I'd break the array out onto multiple lines: Code: $itemFinder->order([ ['comment_count', $direction], ['create_date', 'desc'], ]); You could put each order call on a new line too to help readability. Personally I like to only call each function once where possible.
Just personal preference, usually I'd break the array out onto multiple lines: Code: $itemFinder->order([ ['comment_count', $direction], ['create_date', 'desc'], ]); You could put each order call on a new line too to help readability. Personally I like to only call each function once where possible.