PHP Class FluidTYPO3\Vhs\ViewHelpers\Variable\SetViewHelper
Sets a single variable in the TemplateVariableContainer
scope. The variable then becomes accessible as {var}.
Combines well with
v:variable.get to set shorter variable
names referencing dynamic variables, such as:
{myObject.name}
Note that {arrayVariable.{offset}.name} is not possible
due to the way Fluid parses nodes; the above piece of
code would try reading arrayVariable.{offset}.name
as a variable actually called "arrayVariable.{offset}.name"
rather than the correct arrayVariable[offset][name].
In many ways this ViewHelper works like f:alias
with one exception: in f:alias the variable only
becomes accessible in the tag content, whereas v:variable.set
inserts the variable in the template and leaves it there
(it "leaks" the variable).
If $name contains a dot, VHS will attempt to load the object
stored under the named used as the first segment part and
set the value at the remaining path. E.g.
{value -> v:variable.set(name: 'object.property.subProperty')}
would attempt to load {object} first, then set
property.subProperty on that object/array using
ObjectAccess::setPropertyPath(). If {object} is not
an object or an array, the variable will not be set. Please
note: Extbase does not currently support setting variables
deeper than two levels, meaning a name of fx foo.bar.baz
will be ignored. To set values deeper than two levels you
must first extract the second-level object then set the
value on that object.
Using as {value -> v:variable.set(name: 'myVar')} makes {myVar} contain
{value}.
显示文件
Open project: fluidtypo3/vhs
Public Methods
Method |
Description |
|
render ( string $name, mixed $value = null ) : void |
Set (override) the variable in $name. |
|
Method Details
Set (override) the variable in $name.