Вместо функции createBuilder используйте:
$builder = $app['form.factory']->createNamedBuilder(null, 'form', $data, array('validation_constraint' => $constraint));
Первым параметром является имя формы.
Пример самого Бернхарда Шуссека на https://stackoverflow.com/a/13474522/520114
Есть способы сохранить ваши текстовые данные размером 10 КБ, но будет ли это приемлемо, будет зависеть от того, что еще вам нужно сохранить и как вы планируете их использовать.
Если вам нужно хранить произвольно большие данные (особенно двоичные), тогда указатель файла S3 может быть привлекательным. Ценность, которую SimpleDB добавляет в этот сценарий, - это возможность запускать запросы к метаданным файла, которые вы храните в SimpleDB.
Для текстовых данных, ограниченных 10 КБ, я бы рекомендовал хранить их непосредственно в SimpleDB. Он легко поместится в одном элементе, но вам придется распределить его по нескольким атрибутам. В основном есть два способа сделать это, каждый с некоторыми недостатками.
Один способ более гибкий и удобный для поиска, но требует, чтобы вы коснулись своих данных. Вы разделяете свои данные на фрагменты размером около 1000 байт и сохраняете каждый фрагмент как значение атрибута в многозначном атрибуте. Для многозначных атрибутов не применяется упорядочение, поэтому вы должны добавлять к каждому фрагменту номер для упорядочивания (например, 01)
Тот факт, что весь текст хранится в одном атрибуте, упрощает выполнение запросов с одним атрибутом. имя в предикате. Вы можете добавить текст разного размера к каждому элементу от 1k до 200 + k, и он будет обработан соответствующим образом. Но вы должны знать, что номера ваших добавленных строк могут оказаться положительными для ваших запросов (например, если вы ищете 01
, каждый элемент будет соответствовать этому запросу).
Второй способ хранения текста в SimpleDB не требует от вас размещения произвольных данных упорядочения в ваших текстовых фрагментах. Вы делаете заказ, помещая каждый фрагмент текста в другой именованный атрибут. Например, вы можете использовать имена атрибутов: desc01
desc02
... desc10
. Затем вы помещаете каждый кусок в соответствующий атрибут. Вы по-прежнему можете выполнять полнотекстовый поиск с помощью обоих методов, но поиск будет медленнее с этим методом, потому что вам нужно будет указать много предикатов, и SimpleDB в конечном итоге будет искать по отдельному индексу для каждого атрибута.
Это может быть легко подумать обойти этот тип работы как взлом, потому что с базами данных мы привыкли, что этот тип низкоуровневой информации обрабатывается для нас внутри базы данных. SimpleDB специально разработан, чтобы выталкивать такие вещи из базы данных в клиент, как средство обеспечения доступности как первоклассной функции.
Если бы вы узнали, что реляционная база данных разбивает ваш текст на блоки размером 1 КБ для хранения на диске в качестве детали реализации, это не походило бы на взлом. Проблема в том, что текущее состояние клиентов SimpleDB таково, что вам придется реализовать большую часть этого типа форматирования данных самостоятельно. Это то, чем в идеале будет заниматься умный клиент. Просто пока нет бесплатных доступных смарт-клиентов.
Если вас беспокоит стоимость, вы можете обнаружить, что дешевле поместить текст в S3, а метаданные с указателями в SimpleDB.
Из Часто задаваемые вопросы по стилю и технике Бьярне Строуструпа :
-121--3107650-Почему «это» не является ссылкой?
Потому что «это» было введено в C++ (действительно в C с классами) до добавления ссылок. Кроме того, я выбрал «это», чтобы следовать использованию Simula, а не (позднее) использование Smalltalk «я».
Я бы преобразовал текущие окна в кадры и поместил эти кадры с align = alClient либо в дочерние окна mdi, либо в обычные окна, как настроено.
Но остерегайтесь: я никогда этого не делал, поэтому могут возникнуть проблемы, о которых я не знаю.
-121--2481907-Предстоящий выпуск Simple Savant (созданная мною библиотека сохраняемости C # для SimpleDB) будет поддерживать как охват атрибутов, как описано в Mocky, так и полнотекстовый поиск данных SimpleDB с помощью Lucene.NET.
Я понимаю, что вы, вероятно, не создаете свое приложение на C #, но, поскольку ваш вопрос является главным результатом при поиске SimpleDB и полнотекстового индексирования, его, казалось, стоит упомянуть.
ОБНОВЛЕНИЕ: Выпуск Simple Savant, о котором я упоминал выше, теперь доступен.
Вы можете поместить 10k текста на S3, а затем создать атрибут, который имеет все уникальные слова из 10k текста в качестве нескольких значений. Тогда поиск будет быстрым. Однако поиск по фразам невозможен.
Сколько значений вы можете хранить в одном атрибуте в одной "строке" (имени)? Я искал в документации, но ответа не нашел.
--Tom