symfony - una - objetos de visual studio
¿Cómo podemos obtener el nombre de clase del objeto entidad en vista de ramita? (2)
Por ejemplo, si pasamos un objeto de tabla a la vista de ramita, ¿cómo podemos obtener el nombre de clase de ese objeto como ''Tabla''?
class Table{
}
$table = new Table();
En Twig:
{{ table.className }}
---> esto debería mostrar ''Tabla''
En / Twig_Extension puedes agregar pruebas
public function getTests()
{
return [
''instanceof'' => new /Twig_Function_Method($this, ''isInstanceof'')
];
}
/**
* @param $var
* @param $instance
* @return bool
*/
public function isInstanceof($var, $instance) {
return $var instanceof $instance;
}
Y luego usar como
{% if value is instanceof(''DateTime'') %}
Si no quiere hacer de esto un método en la entidad como tal:
public function getClassName()
{
return (new /ReflectionClass($this))->getShortName();
}
entonces usted podría crear una función o filtro Twig. Aquí hay una función:
class ClassTwigExtension extends /Twig_Extension
{
public function getFunctions()
{
return array(
''class'' => new /Twig_SimpleFunction(''class'', array($this, ''getClass''))
);
}
public function getName()
{
return ''class_twig_extension'';
}
public function getClass($object)
{
return (new /ReflectionClass($object))->getShortName();
}
}
Utilizar como tal:
{{ class(table) }}