Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый вечер. Начинаю изучать laravel (использую версию 5.2)
В views есть форма которая добавляет поля динамически:
<div class="button1" id="firstdata">
<div class="form-custom">
<div class="col-xs-5 col-md-5">
{!!Form::select('materials_outfits[]', [''=>Lang::get('ru.select_material'), Lang::get('ru.materials')=>$materials->lists('name','id')->toArray()],'',['class' => 'form-control select m-b']) !!}
</div>
<div class="col-xs-5 col-md-5">
{!! Form::text('materials_amount[]',null,['class' => 'form-control m-b', 'placeholder' => 'Количество']) !!}
</div>
<div class="col-xs-2 col-md-2">
<div class="tools">
<span class="btnRemove1" data-toggle="modal" data-target="#">
<a class="btn btn-primary m-b" data-toggle="tooltip" data-placement="top" title="{!! Lang::get('ru.delete') !!}" onclick="document.getElementById('firstdata').innerHTML = ''">
<i class="icon-trash"></i>
</a>
</span>
</div>
</div>
</div>
</div
Для добавления полей использую javasript:
<script>
$(document).ready(function() {
var x = 0;
var n = 0;
$('.btnAdd1').click(function() {
n++;
$('.button1').append('<div class="form-custom">' +
'<div class="col-xs-5 col-md-5" >' +
'{!!Form::select("materials_outfits[]", [""=>Lang::get("ru.select_material"), Lang::get("ru.materials")=>$materials->lists("name","id")->toArray()],"",["class" => "form-control select m-b"]) !!}' +
'</div>' +
'<div class="col-xs-5 col-md-5" >' +
'{!! Form::text("materials_amount[]",null,["class" => "form-control m-b", "placeholder" => "Количество"]) !!}' +
'</div>' +
'<div class="col-xs-2 col-md-2">' +
'<div class="tools"> <span class="btnRemove1" data-toggle="modal" data-target="#"><a class="btn btn-primary m-b" data-toggle="tooltip" data-placement="top" title="Delete"><i class="icon-trash"></i></a></span> </div>' +
'</div>' +
'</div>'
); // end append
$('div .btnRemove1').last().click(function(e) {
e.preventDefault();
$(this).closest('.form-custom').remove();
x--;
});
});
});
</script>
Дальше после заполнения полей и отправки формы, в контроллере обрабатываю все поля функцией store для дальнейшей записи в базу:
// outfits_materials
$use_amounts = Arr::build($request->input('materials_amount'), function ($key, $name){
return [$key, ['amount'=>is_array($name) ? $name[0] : $name]];
});
$use_materials = Arr::build($request->input('materials_outfits'), function ($key, $name)
{
return [$key, ['id_materials'=>is_array($name) ? $name[0] : $name]];
});
dd($use_amounts, $use_materials);
На выходе имею следующий вид если заполнено 3 поля:
array:3 [▼
0 => array:1 [▼
"amount" => "100"
]
1 => array:1 [▼
"amount" => "101"
]
2 => array:1 [▼
"amount" => "102"
]
]
array:3 [▼
0 => array:1 [▼
"id_materials" => "18"
]
1 => array:1 [▼
"id_materials" => "18"
]
2 => array:1 [▼
"id_materials" => "18"
]
]
Собственно хочу получить такой вид, но не понимаю как сложить 2 массива:
array:3 [▼
0 => array:1 [▼
"amount" => "100"
"id_materials" => "18"
]
1 => array:1 [▼
"amount" => "101"
"id_materials" => "18"
]
2 => array:1 [▼
"amount" => "102"
"id_materials" => "18"
]
]
Спасибо всех кто откликнется.
Не в сети
$res = array_map('array_merge', $arr1, $arr2)
вроде должно работать…
Не в сети
Благодарю, сработало. +1 в репутацию
Не в сети
Страницы 1