logo

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

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

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

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

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

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

Scroll
18/06/2025, by Ivan

Դինամիկ հարցման մեջ WHERE պայման ավելացնելու համար օգտագործեք condition() մեթոդը՝

$query->condition('bundle', 'article', '=');

Վերը նշված կոդը հրահանգում է հարցման արդյունքները զտել՝ ընտրելով միայն «article» փաթեթի գրառումները։ Հիշեք, որ դաշտի անունը պետք է լինել այն անվանումը, որը ստեղծվել է addField() կամ addExpression() մեթոդներով։

Condition մեթոդի պարամետրերը

condition() մեթոդը ընդունում է երեք պարամետր՝

  • $field - համեմատության դաշտը (պարտադիր)
  • $value - համեմատության արժեքը (ոչ պարտադիր, լռությամբ NULL)
  • $operator - համեմատության օպերատորը (ոչ պարտադիր, լռությամբ ‘=’)

Աջակցվող օպերատորներ

Համընդհանուր համեմատական օպերատորները՝ '=', '<>', '<', '<=', '>', '>=', աջակցվում են բոլոր տվյալների բազաների տեսակներում։

IN, NOT IN օպերատորները

IN և NOT IN օպերատորները $value պարամետրով ընդունում են զանգված և համեմատում դաշտի արժեքը զանգվածի արժեքների հետ։

$users = [2,5,17,22];
$query->condition('uid', $users, 'IN');

Այս դեպքում հարցումը կվերադարձնի այն գրառումները, որտեղ uid-ը հավասար է 2, 5, 17 կամ 22։

BETWEEN և NOT BETWEEN օպերատորները

BETWEEN և NOT BETWEEN օպերատորները $value-ով ստանում են երկու արժեք պարունակող զանգված։

$query->condition('count', [5,10], 'BETWEEN');

Այս դեպքում հարցումը կվերադարձնի գրառումներ, որտեղ count արժեքը գտնվում է 5-ից 10 միջակայքում։

IS NULL, IS NOT NULL, EXISTS և NOT EXISTS օգտագործումը

Համաձայնության համաձայն օգտագործեք հետևյալ մեթոդները՝ ոչ թե condition() մեթոդի հետ միասին․

$query->isNull($field);
$query->isNotNull($field);
$query->exists($field);
$query->notExists($field);

Չնայած հետևյալ պայմանը պետք է աշխատի՝ $query->condition($field, NULL, 'IS NOT NULL');, վերոնշյալ մեթոդների օգտագործումը ավելի խորհուրդ է տրվում։

Այլ օպերատորներ

Այլ օպերատորներ, ինչպիսիք են BINARY-ը կամ տվյալ տվյալների բազայի հատուկ օպերատորները, կարող են աշխատել կամ չաշխատել։ Կանխատեսեք դա մոդուլներ մշակելիս, որոնք կարող են օգտագործվել տարբեր տվյալների բազաներում։

Մի քանի condition() օգտագործում

Հարցման զտման համար կարելի է ավելացնել մի քանի condition() մեթոդ։

$query->condition('bundle', 'article', '=');
$query->condition('status', '1', '=');

Եթե մի քանի condition() կան, ինչպես վերևում, ապա բոլոր պայմանները պետք է կատարվեն, որպեսզի գրառումը հայտնվի արդյունքներում (այլ խոսքով, պայմանները միացվում են AND-ով)։

Խորհուրդ․ Եթե ցանկանում եք միայն OR պայմաններ, օգտագործեք orConditionGroup։

Պայմանների խմբեր

Պայմանների խմբերն օգտագործվում են WHERE արտահայտություններն ավելի բարդ ձևավորելու համար (ներառյալ OR-ները)։ Կան երկու տեսակի խմբեր՝

  • orConditionGroup — վերադարձնում է պայմանների օբյեկտ, որոնք միացված են OR-ով
  • andConditionGroup — վերադարձնում է պայմանների օբյեկտ, որոնք միացված են AND-ով

Պայմանների խմբերը վերադարձնում են օբյեկտ, որը հետո ավելացվում է հարցման պայմանների մեջ։

// Ստեղծել orConditionGroup
$orGroup = $query->orConditionGroup()
  ->condition('promoted', 1)
  ->condition('uid', [2,4,7,22], 'IN');
  
// Ավելացնել խմբակը հարցմանը
$query->condition($orGroup);

Այս օրինակով «promoted» և «uid» պայմանները միացված են OR-ով և ավելացվում են WHERE-ում՝ որպես

WHERE (promoted = 1 OR uid IN (2,4,7,22))

Կարելի է ավելացնել մի քանի orConditionGroup և andConditionGroup խմբեր, որոնք կարող են լինել ներառված՝ ստանալով ավելի բարդ WHERE արտահայտություններ։

Օրինակ՝

WHERE (a = 1 OR b = 1) AND ((c = 1 AND d = 1) OR (e = 1))

Հարցման պայմանները կարող են գրանցվել խմբերով՝

$orGroup1 = $query->orConditionGroup()
  ->condition('a', 1)
  ->condition('b', 1);
  
$andGroup1 = $query->andConditionGroup()
  ->condition('c', 1)
  ->condition('d', 1);
  
$orGroup2 = $query->orConditionGroup()
  ->condition($andGroup1)
  ->condition('e', 1);
  
$query->condition($orGroup1);
$query->condition($orGroup2);
Source URL:
Source authors:

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.