How to Create Lightweight Form

Out of the box, SilverStripe provides a robust and reusable set of HTML markup for FormFields, however this can sometimes produce markup which is unnecessarily bloated.

For example, a basic search form. We want to use the Form API to handle the form but we may want to provide a totally custom template to meet our needs. To do this, we'll provide the class with a unique template through setTemplate.



	public function SearchForm() {
		$fields = new FieldList(

		$actions = new FieldList(
			FormAction::create('doSearch', 'Search')

		$form = new Form($this, 'SearchForm', $fields, $actions);

		return $form;
	<form $FormAttributes>
		<div class="Actions">
			<% loop $Actions %>$Field<% end_loop %>

properties on Form such as $Fields and $Actions.

To understand more about Scope or the syntax for custom templates, read the Templates guide.