Создание системы ведения блога с использованием L5 и моей текущей настройки полностью готово, за исключением сохранения сообщений в блоге.
У меня есть две кнопки. Один создает вход в textarea, а другой создает интерфейс для загрузки файлов.
По сути, после создания сообщения в блоге я остался со структурой вроде так:
<form>
<textarea name="text-update">foo</textarea>
<textarea name="text-update">foo</textarea>
<textarea name="text-update">foo</textarea>
<textarea name="text-update">foo</textarea>
<input type="hidden" value="an image url"/>
<input type="hidden" value="an image url"/>
<textarea name="text-update">foo</textarea>
</form>
В идеале я хочу уметь:
public function store()
{
foreach (INPUTS AS INPUT) {
add new row to database with the content and also the type of input.
}
}
Цель состоит в том, что вместо того, чтобы иметь один блог, у меня вместо этого есть разделы блога, которые будут принадлежать блогу.
Если это невозможно, то мне просто нужно увеличивать имена входов и выдумывать что-то.
Редактирование. Когда вы добавляете элемент в DOM, вы можете определить ключ массива с идентификатором, чтобы сохранить порядок массива.
Вы можете сделать входы массивом, добавив []
в конец имени:
<form>
<textarea name="text-update[1]">foo</textarea>
<textarea name="text-update[2]">foo</textarea>
<textarea name="text-update[3]">foo</textarea>
<textarea name="text-update[4]">foo</textarea>
<input type="hidden" name="image[1]" value="an image url"/>
<input type="hidden" name="image[2]" value="an image url"/>
<textarea name="text-update[5]">foo</textarea>
</form>
Это поместит все значения в массив, который вы можете перебрать
foreach (Request::get('text-update') as $update) {
//add new row to database with the content and also the type of input.
}
foreach (Request::get('image') as $update) {
//add new row to database with the content and also the type of input.
}
Установите свои поля следующим образом:
<textarea name="text-update[]">foo</textarea>
используя скобки, они будут принимать все текстовые поля и группировать их в массив, который затем можно перебрать. Вам также нужно будет сделать то же самое со скрытыми полями. Убедитесь, что вы используете [] в названии так:
<input type="hidden" name="somename[]" value="an image url"/>