У меня ошибка unexpected '->' (T_OBJECT_OPERATOR)
, и я не могу ее решить:
$form = $this->createFormBuilder($item)
foreach ($classes->fieldMappings as $fieldMapping) {
->add($fieldMapping['fieldName'], TextType::class, array('attr' => array('class' => 'form-control')))
}
->add('cancel', ButtonType::class, array('label' => 'Abbrechen','attr' => array('class' => 'cancel form-btn btn btn-default pull-right close_sidebar close_h')))
->add('save', SubmitType::class, array('label' => 'Speichern','attr' => array('id' => 'submit-my-beautiful-form','class' => 'form-btn btn btn-info pull-right','style' => 'margin-right:5px')))
->getForm();
$form->handleRequest($request);
Одна идея состояла в том, чтобы изменить эту строку:
$form = ($this->createFormBuilder($item))
Но это не сработало, и я не знаю, что я мог сделать
var_dump($classes)
выводит это:
object(Doctrine\ORM\Mapping\ClassMetadata)#2979 (40) {
["name"]=>
string(18) "App\Entity\Members"
["namespace"]=>
string(10) "App\Entity"
["rootEntityName"]=>
string(18) "App\Entity\Members"
["customGeneratorDefinition"]=>
NULL
["customRepositoryClassName"]=>
string(29) "App\Repository\UserRepository"
["isMappedSuperclass"]=>
bool(false)
["isEmbeddedClass"]=>
bool(false)
["parentClasses"]=>
array(0) {
}
["subClasses"]=>
array(0) {
}
["embeddedClasses"]=>
array(0) {
}
["namedQueries"]=>
array(0) {
}
["namedNativeQueries"]=>
array(0) {
}
["sqlResultSetMappings"]=>
array(0) {
}
["identifier"]=>
array(1) {
[0]=>
string(2) "id"
}
["inheritanceType"]=>
int(1)
["generatorType"]=>
int(4)
["fieldMappings"]=>
array(5) {
["id"]=>
array(9) {
["fieldName"]=>
string(2) "id"
["type"]=>
string(7) "integer"
["scale"]=>
int(0)
["length"]=>
NULL
["unique"]=>
bool(false)
["nullable"]=>
bool(false)
["precision"]=>
int(0)
["id"]=>
bool(true)
["columnName"]=>
string(2) "id"
}
["username"]=>
array(8) {
["fieldName"]=>
string(8) "username"
["type"]=>
string(6) "string"
["scale"]=>
int(0)
["length"]=>
int(25)
["unique"]=>
bool(true)
["nullable"]=>
bool(false)
["precision"]=>
int(0)
["columnName"]=>
string(8) "username"
}
["password"]=>
array(8) {
["fieldName"]=>
string(8) "password"
["type"]=>
string(6) "string"
["scale"]=>
int(0)
["length"]=>
int(64)
["unique"]=>
bool(false)
["nullable"]=>
bool(false)
["precision"]=>
int(0)
["columnName"]=>
string(8) "password"
}
["email"]=>
array(8) {
["fieldName"]=>
string(5) "email"
["type"]=>
string(6) "string"
["scale"]=>
int(0)
["length"]=>
int(191)
["unique"]=>
bool(true)
["nullable"]=>
bool(false)
["precision"]=>
int(0)
["columnName"]=>
string(5) "email"
}
["isActive"]=>
array(8) {
["fieldName"]=>
string(8) "isActive"
["type"]=>
string(7) "boolean"
["scale"]=>
int(0)
["length"]=>
NULL
["unique"]=>
bool(false)
["nullable"]=>
bool(false)
["precision"]=>
int(0)
["columnName"]=>
string(9) "is_active"
}
}
["fieldNames"]=>
array(5) {
["id"]=>
string(2) "id"
["username"]=>
string(8) "username"
["password"]=>
string(8) "password"
["email"]=>
string(5) "email"
["is_active"]=>
string(8) "isActive"
}
["columnNames"]=>
array(5) {
["id"]=>
string(2) "id"
["username"]=>
string(8) "username"
["password"]=>
string(8) "password"
["email"]=>
string(5) "email"
["isActive"]=>
string(9) "is_active"
}
["discriminatorValue"]=>
NULL
["discriminatorMap"]=>
array(0) {
}
["discriminatorColumn"]=>
NULL
["table"]=>
array(1) {
["name"]=>
string(7) "members"
}
["lifecycleCallbacks"]=>
array(0) {
}
["entityListeners"]=>
array(0) {
}
["associationMappings"]=>
array(0) {
}
["isIdentifierComposite"]=>
bool(false)
["containsForeignIdentifier"]=>
bool(false)
["idGenerator"]=>
object(Doctrine\ORM\Id\IdentityGenerator)#3894 (1) {
["sequenceName":"Doctrine\ORM\Id\IdentityGenerator":private]=>
NULL
}
["sequenceGeneratorDefinition"]=>
NULL
["tableGeneratorDefinition"]=>
NULL
["changeTrackingPolicy"]=>
int(1)
["isVersioned"]=>
NULL
["versionField"]=>
NULL
["cache"]=>
NULL
["reflClass"]=>
object(ReflectionClass)#3910 (1) {
["name"]=>
string(18) "App\Entity\Members"
}
["isReadOnly"]=>
bool(false)
["namingStrategy":protected]=>
object(Doctrine\ORM\Mapping\UnderscoreNamingStrategy)#2431 (1) {
["case":"Doctrine\ORM\Mapping\UnderscoreNamingStrategy":private]=>
int(0)
}
["reflFields"]=>
array(5) {
["id"]=>
object(ReflectionProperty)#3911 (2) {
["name"]=>
string(2) "id"
["class"]=>
string(18) "App\Entity\Members"
}
["username"]=>
object(ReflectionProperty)#3912 (2) {
["name"]=>
string(8) "username"
["class"]=>
string(18) "App\Entity\Members"
}
["password"]=>
object(ReflectionProperty)#3913 (2) {
["name"]=>
string(8) "password"
["class"]=>
string(18) "App\Entity\Members"
}
["email"]=>
object(ReflectionProperty)#3914 (2) {
["name"]=>
string(5) "email"
["class"]=>
string(18) "App\Entity\Members"
}
["isActive"]=>
object(ReflectionProperty)#3915 (2) {
["name"]=>
string(8) "isActive"
["class"]=>
string(18) "App\Entity\Members"
}
}
["instantiator":"Doctrine\ORM\Mapping\ClassMetadataInfo":private]=>
object(Doctrine\Instantiator\Instantiator)#2984 (0) {
}
}
для deceze♦
:
У меня есть объект, который создается базой данных mySQL. Поскольку у меня есть 100 различных сущностей (это означает таблицы базы данных) с разными полями, я хочу создать одну функцию, которую я могу использовать в зависимости от их содержимого. Вот чего я пытаюсь достичь:
$form = $this->createFormBuilder($item)
->add('id', TextType::class, array('attr' => array('class' => 'form-control')))
->add('username', TextType::class, array('attr' => array('class' => 'form-control')))
->add('email', TextType::class, array('attr' => array('class' => 'form-control')))
->add('is_active', TextType::class, array('attr' => array('class' => 'form-control')))
->add('password', TextType::class, array('attr' => array('class' => 'form-control')))
->getForm();
В зависимости от ввода $slug
, я хочу создать поля в конструкторе форм:
$EntityName = 'App\\Entity\\' . ucwords($slug);
$em = $this->getDoctrine()->getManager();
$cmf = $em->getMetadataFactory();
$classes = $cmf->getMetadataFor($EntityName);
Вот почему я хочу получить метаданные из объекта $ classes. Объект предлагает мне поля, которые мне нужны, и с помощью цикла foreach я хочу построить их