logo

Extra Block Types (EBT) - Nieuwe Layout Builder ervaringâť—

Extra Block Types (EBT) - gestileerde, aanpasbare bloktypes: Slideshows, Tabs, Cards, Accordions en vele andere. Ingebouwde instellingen voor achtergrond, DOM Box, javascript-plugins. Ervaar vandaag al de toekomst van layout building.

Demo EBT-modules Download EBT-modules

âť—Extra Paragraph Types (EPT) - Nieuwe Paragraphs ervaring

Extra Paragraph Types (EPT) - analoge op paragrafen gebaseerde set modules.

Demo EPT-modules Download EPT-modules

Scroll
01/10/2025, by Ivan

Sommige SQL-query’s kunnen dubbele resultaten opleveren. In zulke gevallen kunnen dubbele rijen worden gefilterd met het sleutelwoord DISTINCT in een statische query. In een dynamische query gebruik je de methode distinct().

01/10/2025, by Ivan

Om te groeperen op een bepaald veld gebruik je de methode groupBy().

$query->groupBy('uid');

Bovenstaande code geeft aan dat de query moet groeperen op het veld uid. Merk op dat de veldnaam hier een alias moet zijn die is aangemaakt met de methoden addField() of addExpression(). In de meeste gevallen wil je daarom de returnwaarde van die methoden gebruiken om zeker te zijn dat de juiste alias wordt gebruikt.

01/10/2025, by Ivan

Om een WHERE-clausule toe te voegen aan een dynamische query, gebruik je de methode condition():

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

Bovenstaande code instrueert de query om de resultaten te filteren op het bundletype article. Merk op dat de veldnaam hier een alias moet zijn die is aangemaakt met de methoden addField() of addExpression().

Parameters van condition()

De methode condition() accepteert drie parameters:

01/10/2025, by Ivan

Een SELECT-query retourneert altijd een resultset-object dat nul of meer records bevat. Er zijn verschillende manieren om gegevens uit deze resultset te halen, afhankelijk van het gebruiksscenario. Records worden standaard opgehaald als objecten, tenzij je de fetch-modus wijzigt (zie: setFetchMode).

Het meest voorkomende geval is het doorlopen van de resultset met een foreach()-lus.

01/10/2025, by Ivan

Query’s kunnen worden opgehaald als objecten op basis van aangepaste klassen. Bijvoorbeeld, als we een klasse hebben met de naam ExampleClass, dan retourneert de volgende query objecten van het type ExampleClass.

01/10/2025, by Ivan

Invoegquery’s moeten altijd gebruikmaken van het query builder-object. In sommige databases is speciale verwerking vereist voor LOB-velden (Large OBject, bijvoorbeeld TEXT in MySQL) en BLOB’s (Binary Large OBject), dus is er een abstractielaag nodig zodat afzonderlijke databasedrivers eventuele speciale verwerking kunnen implementeren die zij nodig hebben.

Insert-query’s worden uitgevoerd met de methode insert() als volgt:

01/10/2025, by Ivan

Samenvoegingsquery’s zijn een speciaal type hybride query. Hoewel de syntaxis hiervoor is gedefinieerd in de SQL 2003-specificatie, ondersteunt vrijwel geen enkele database de standaardsyntaxis. De meeste databases bieden echter een alternatieve implementatie met een database-specifieke syntaxis. De merge query builder in Drupal abstraheert het concept van een samenvoegingsquery naar een gestructureerd object dat kan worden gecompileerd naar de juiste syntaxis voor elke database. Ze worden soms ook wel "UPSERT"-query’s genoemd, een combinatie van UPDATE en INSERT.

01/10/2025, by Ivan

Verwijderingsquery’s moeten altijd gebruikmaken van het query builder-object. Ze worden uitgevoerd met de methode delete() als volgt:

$query = $connection->delete('mytable', $options);

Dit maakt een delete-queryobject aan dat records uit de tabel mytable verwijdert. Merk op dat er geen accolades nodig zijn rond de tabelnaam, omdat de query builder dit automatisch afhandelt.

01/10/2025, by Ivan

Drupal ondersteunt ook transacties, inclusief een transparant fallback-mechanisme voor databases die geen transacties ondersteunen. Transacties kunnen echter vrij complex zijn als je probeert twee transacties tegelijkertijd te starten. Het gedrag in dat geval hangt ook af van de gebruikte database.