public MenuTreeStorage::loadByProperties(array $properties)
Loads multiple plugin definitions from the storage based on properties.
Parameters
array $properties: The properties to filter by.
Return value
array An array of menu link definition arrays.
Throws
\InvalidArgumentException Thrown if an invalid property name is specified in $properties.
Overrides MenuTreeStorageInterface::loadByProperties
File
- core/lib/Drupal/Core/Menu/MenuTreeStorage.php, line 643
Class
- MenuTreeStorage
- Provides a menu tree storage using the database.
Namespace
Drupal\Core\Menu
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public function loadByProperties( array $properties ) { $query = $this ->connection->select( $this ->table, $this ->options); $query ->fields( $this ->table, $this ->definitionFields()); foreach ( $properties as $name => $value ) { if (!in_array( $name , $this ->definitionFields(), TRUE)) { $fields = implode( ', ' , $this ->definitionFields()); throw new \InvalidArgumentException( "An invalid property name, $name was specified. Allowed property names are: $fields." ); } $query ->condition( $name , $value ); } $loaded = $this ->safeExecuteSelect( $query )->fetchAllAssoc( 'id' , \PDO::FETCH_ASSOC); foreach ( $loaded as $id => $link ) { $loaded [ $id ] = $this ->prepareLink( $link ); } return $loaded ; } |
Please login to continue.