class RobotListBuilder
Same name in other branches
- 3.x modules/config_entity_example/src/Controller/RobotListBuilder.php \Drupal\config_entity_example\Controller\RobotListBuilder
- 4.0.x modules/config_entity_example/src/Controller/RobotListBuilder.php \Drupal\config_entity_example\Controller\RobotListBuilder
Provides a listing of robot entities.
List Controllers provide a list of entities in a tabular form. The base class provides most of the rendering logic for us. The key functions we need to override are buildHeader() and buildRow(). These control what columns are displayed in the table, and how each row is displayed respectively.
Drupal locates the list controller by looking for the "list" entry under "controllers" in our entity type's annotation. We define the path on which the list may be accessed in our module's *.routing.yml file. The key entry to look for is "_entity_list". In *.routing.yml, "_entity_list" specifies an entity type ID. When a user navigates to the URL for that router item, Drupal loads the annotation for that entity type. It looks for the "list" entry under "controllers" for the class to load.
Hierarchy
- class \Drupal\config_entity_example\Controller\RobotListBuilder extends \Drupal\Core\Config\Entity\ConfigEntityListBuilder uses \Drupal\examples\Utility\DescriptionTemplateTrait
Expanded class hierarchy of RobotListBuilder
Related topics
File
-
config_entity_example/
src/ Controller/ RobotListBuilder.php, line 28
Namespace
Drupal\config_entity_example\ControllerView source
class RobotListBuilder extends ConfigEntityListBuilder {
use DescriptionTemplateTrait;
/**
* {@inheritdoc}
*/
protected function getModuleName() {
return 'config_entity_example';
}
/**
* Builds the header row for the entity listing.
*
* @return array
* A render array structure of header strings.
*
* @see \Drupal\Core\Entity\EntityListController::render()
*/
public function buildHeader() {
$header['label'] = $this->t('Robot');
$header['machine_name'] = $this->t('Machine Name');
$header['floopy'] = $this->t('Floopy');
return $header + parent::buildHeader();
}
/**
* Builds a row for an entity in the entity listing.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity for which to build the row.
*
* @return array
* A render array of the table row for displaying the entity.
*
* @see \Drupal\Core\Entity\EntityListController::render()
*/
public function buildRow(EntityInterface $entity) {
$row['label'] = $entity->label();
$row['machine_name'] = $entity->id();
$row['floopy'] = $entity->floopy;
return $row + parent::buildRow($entity);
}
/**
* Adds some descriptive text to our entity list.
*
* Typically, there's no need to override render(). You may wish to do so,
* however, if you want to add markup before or after the table.
*
* @return array
* Renderable array.
*/
public function render() {
$build = $this->description();
$build[] = parent::render();
return $build;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
DescriptionTemplateTrait::description | public | function | Generate a render array with our templated content. | ||
DescriptionTemplateTrait::getDescriptionTemplatePath | protected | function | Get full path to the template. | ||
DescriptionTemplateTrait::getDescriptionVariables | protected | function | Variables to act as context to the twig template file. | 1 | |
RobotListBuilder::buildHeader | public | function | Builds the header row for the entity listing. | ||
RobotListBuilder::buildRow | public | function | Builds a row for an entity in the entity listing. | ||
RobotListBuilder::getModuleName | protected | function | Name of our module. | Overrides DescriptionTemplateTrait::getModuleName | |
RobotListBuilder::render | public | function | Adds some descriptive text to our entity list. |