logo

Լրացուցիչ Բլոկների Տեսակներ (EBT) - Դասավորության Կառուցողի նոր փորձառություն❗

Լրացուցիչ Բլոկների Տեսակներ (EBT) - ձևավորված, կարգավորելի բլոկների տեսակներ՝ սլայդշոուներ, ներդիրներ, քարտեր, բացվող ցանկեր և շատ ուրիշներ։ Ներառված կարգավորումներ՝ ֆոնի, DOM տուփի, JavaScript փլագինների համար։ Փորձեք դասավորությունների կառուցման ապագան արդեն այսօր։

EBT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EBT մոդուլները

❗Լրացուցիչ Պարբերությունների Տեսակներ (EPT) - Պարբերությունների նոր փորձառություն

Լրացուցիչ պարբերության տեսակներ (EPT) - անալոգիական պարբերության վրա հիմնված մոդուլների հավաքակազմ։

EPT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EPT մոդուլները

Scroll
18/06/2025, by Ivan

Նշված դաշտով խմբավորման համար օգտագործեք groupBy() մեթոդը։

$query->groupBy('uid');

Վերը նշված կոդը կասի հարցմանը խմբավորել տվյալները uid դաշտով։ Խնդրում ենք նկատի ունենալ, որ դաշտի անունը պետք է լինի addField() կամ addExpression() մեթոդներով ստեղծված պսևդոնիմ, ուստի շատ դեպքերում ցանկալի է օգտագործել այդ մեթոդների վերադարձված արժեքները, որպեսզի համոզվեք ճիշտ պսևդոնիմ է օգտագործվում։

Դաշտով, օրինակ՝ uid, խմբավորված տողերի քանակ ստանալու համար կարող եք անել հետևյալը.

$query->addExpression('count(uid)', 'uid_node_count');

Բազմաթիվ դաշտերով խմբավորելու համար պարզապես կանչեք groupBy() մի քանի անգամ՝ անհրաժեշտ հերթականությամբ։

Having

Կարող եք ավելացնել պայմաններ ագրեգացված արժեքների համար։

$query->having('COUNT(uid) >= :matches', [':matches' => $limit]);

Այս դեպքում կընտրվեն այն դեպքերը, երբ uid-ների քանակը մեծ կամ հավասար է $limit-ին։ Խնդրում ենք նկատի ունենալ, որ having() առաջին պարամետրը չի ֆիլտրավորվում նախքան տվյալների բազա ուղարկելը, այդ պատճառով օգտագործողի արժեքները պետք է փոխանցվեն երկրորդ պարամետրի միջոցով։

groupBy և having օրինակներ

Հաջորդ կոդը հաշվում է հանգույցների քանակը ըստ UID.

$query = $connection->select('node', 'n')
  ->fields('n', ['uid']);
$query->addExpression('count(uid)', 'uid_node_count');
$query->groupBy("n.uid");
$query->execute();

Հաջորդ կոդը վերցնում է նախորդ օրինակն ու սահմանափակում արդյունքները՝ ընտրելով միայն այն uid-երը, որոնք ունեն առնվազն 2 գրառում։

$query = $connection->select('node', 'n')
    ->fields('n',['uid']);
$query->addExpression('count(uid)', 'uid_node_count');
$query->groupBy("n.uid");
$query->having('COUNT(uid) >= :matches', [':matches' => 2]);
$results = $query->execute();
Source URL:

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.