logo

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

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

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

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

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

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

Scroll
18/06/2025, by Ivan

Ավելացնել դաշտ

Select հարցման մեջ դաշտ ավելացնելու համար օգտագործեք addField() մեթոդը՝

$title_field = $query->addField('n', 'title', 'my_title');

Վերը նշված կոդը հարցմանն հրահանգում է ընտրել «n» պսևդոնիմով աղյուսակի «title» դաշտը և նրան տալ «my_title» պսևդոնիմ: Եթե պսևդոնիմը չի նշվում, այն ավտոմատ կստեղծվի: Շատ դեպքերում ստեղծված պսևդոնիմը կլինի դաշտի անունը: Այս օրինակով՝ դա կլինի «title»: Եթե այդ պսևդոնիմը արդեն գոյություն ունի, պսևդոնիմը կկոչվի աղյուսակի անունը և դաշտի անունը՝ այս դեպքում «n_title»: Եթե դա էլ արդեն կա, պսևդոնիմին կավելացվի միակողմանի ցուցիչ մինչև գտնվի օգտագործված չլինող անուն, օրինակ՝ «n_title_2»:

Նշեք, որ եթե դուք ինքներդ եք կազմում և լրացնում հարցումը առանց պսևդոնիմ նշելու, իսկ լռությամբ նշված պսևդոնիմը հասանելի չէ, մեծ հավանականությամբ ձեր կոդում կա սխալ: Սակայն hook_query_alter() իրականացնելիս դուք չեք կարող իմանալ, թե ինչ պսևդոնիմներ արդեն օգտագործվում են, այդ պատճառով միշտ պետք է օգտագործեք ստեղծված պսևդոնիմները։

Ավելացնել մի քանի դաշտ

Մի քանի դաշտ ընտրելու համար կանչեք addField() անհրաժեշտ դաշտերի համար համապատասխան հերթականությամբ: Նշեք, որ մեծ մասամբ դաշտերի հերթականությունը նշանակություն չունի, և եթե նշանակություն ունի, ապա դա մոդուլի բիզնես տրամաբանության թերություն է։

Այլընտրանքորեն կարող եք օգտագործել fields() մեթոդը մի քանի դաշտ միանգամից ավելացնելու համար՝

$query->fields('n', ['nid', 'title', 'created', 'uid']);

Վերը նշված մեթոդը հավասարազոր է addField() չորս անգամ կանչելուն՝ յուրաքանչյուր դաշտի համար մեկական անգամ: Սակայն fields() չի աջակցում դաշտի համար պսևդոնիմ նշելուն: Այն վերադարձնում է հարցման օբյեկտը, ինչը թույլ է տալիս մեթոդը շղթայական կանչել: Եթե անհրաժեշտ է իմանալ ստեղծված պսևդոնիմը, օգտագործեք addField() կամ getFields()՝ ներքին դաշտերի հում կառուցվածքին հասնելու համար:

fields() մեթոդը առանց դաշտերի ցուցակի կանչելու դեպքում կստացվի «SELECT *» հարցում։

$query->fields('n');

Սա կհայտնվի որպես «n.*» դաշտերի ցանկում: Նշեք, որ պսևդոնիմներ չեն ստեղծվում: Եթե այդպիսի աղյուսակներից մի քանիսը պարունակում են նույնանուն դաշտեր, որոնք ուղղակի նշվում են, արդյունքի հավաքածուում կարող է առաջանալ դաշտի անվան բախում: Այդ դեպքում արդյունքներում կլինի միայն մեկ դաշտ այդ անվամբ։ Այս պատճառով խորհուրդ չի տրվում օգտագործել SELECT *:

Միայն մեկ դաշտ վերադարձնել՝ օգտագործելով fetchField

Միայն մեկ դաշտ վերադարձնելու համար օգտագործեք fetchField մեթոդը՝ օրինակ՝

$query = $connection->select('node', 'n');
$query->condition('n.nid', 123);
$query->addField('n', 'title');
$result = $query->execute();
return $result->fetchField();
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.