Это, кажется, меньше о Laravel и больше об общей БД схеме, PHP и UI практике. Поэтому из-за широкого спектра ответов, которые это требует, я отвечу в основном с использованием концепций передовой практики, чтобы избежать чрезмерно многословности (используя Laravel для контекста).
Фронтальный
Для возможности добавить еще один набор полей на лету, вы хотите использовать форму массива:
<div class="field-set">
{{ Form::text('fields[0]["title"]', Input::old('fields[0]["title"]')) }}
{{ Form::textarea('fields[0]["description"]', Input::old('fields[0]["description"]')) }}
</div>
<a href="#" class="add-more-link">+ Add more</a>
Ваш «надстройку более-ссылку» должен иметь яваскрипт триггера, который будет дублировать и добавить элемент «поля набора» с итерацией индекса в виде массиве
(e.g. fields[1]["title"], fields[2]["title"])
примечания: Вы ки n делать это без JS, но вам придется перепрограммировать страницу с помощью некоторого параметра, который увеличивает количество создаваемых полей и затем циклически повторяется при рендеринге наборов полей в генерации DOM.
Для обеспечения переупорядочения я рекомендую jQuery UI's Sortable. Примечание. Вы можете выполнить это без JS, добавив POST вверх или вниз для каждого набора полей, но в фоновом режиме потребуется больше обработки.
Back-конец
В модели, где вы справляетесь сохранить, захват данных с помощью ввода :: получить («поля») будет хранить его в PHP массив, который вы можете перебирать для проверки, анализа и хранения данных.
Что касается вашей схемы БД, вам нужно будет учесть создание любого количества новых полей. Это означает, что, вероятно, потребуется отдельная таблица, которая будет объединена с пользователями. (Столбцы: id, user_id, название, описание)
В Laravel вы можете определить a Has Many Relationship для модели пользователей, которая будет захватывать все заголовки и описания для любого данного пользователя. http://laravel.com/docs/eloquent#relationships