VDL Webdevelopment 

Rainlab Builder: handigheidjes

De plugin waarover ik in mijn vorige artikel schreef is onmisbaar maar kan niet de totale applicatie bouwen. Dat hoeft ook niet want daarvoor is hij niet ontwikkeld. Het is bedoeld voor z.g. Rapid Application Development: snelle applicatie ontwikkeling.

Er zijn dus beperkingen en twee daarvan zal ik beschrijven:

Foto toevoegen

Wanneer je je formulier-elementen gaat toevoegen kun je kiezen uit een groot aantal waaronder tekstveld, wysiwyg-editor, dropdownmenu's, checkboxen maar je kunt ook kiezen voor file-upload. Als je voor dit element kiest moet je in het instellingenscherm een keuze maken voor bestand of afbeelding. Daarnaast kun je nog toegestane bestandsformaten opgeven. Maar als je het formulier test zul je een foutmelding krijgen.

Dat komt omdat in het model nog niet bekend is dat er een foto wordt geupload. De parser komt het veld tegen en kan in het model geen referentie vinden. Ga naar het betreffende model-bestand (bijvoorbeeld: plugins/acme/books/models/books.php) en voeg toe aan de class:

public $attachOne = ['foto' => 'System\Models\File'];

In dt geval heb je het element de naam 'foto' gegeven. Nu zal je backendpagina weer correct werken en wordt de foto keurig geupload.

Relatie leggen met ander model

Waar je ook tegenaan kunt lopen is het koppelen van models aan een item. Zoals bijvoorbeeld een Project kan horen bij een Categorie.

Je maakt hiervoor de beide models aan binnen de plugin. Nu wil je een product koppelen aan een categorie die in het andere model bestaat. Daarvoor maak je in het model van het Product een element aan van het type Dropdownlist. Je kiest alleen de veldnaam, verder niets.

De koppeling is er dus nog niet, die moet je maken in het model, in hetzelfde bestand dat je net hebt bewerkt:

public $belongsTo = ['Categories' => 'Acme\Books\Models\Categories'];

Alsje nu je pagina opent in de backend kun je zien dat de categorieen in je dropdownvelden beschikbaar zijn.

Posted in October CMS on Oct 05, 2016