I could not give myself an error:
ErrorException in ParameterBag.php line 88: array_key_exists (): The first argument should be either a string or an integer
My Controller:
public function store(Request $request){
$diaria = Diaria::create($request->all());
$diaria->trechos()->createMany($request->get([
'local_servico',
'local_pernoite',
'data_afastamento_inicio',
'hora_afastamento_inicio',
'data_afastamento_retorno',
'hora_afastamento_retorno',
'adicional_deslocamento',
'total_acrescimos',
'ck_valor_total',
'valor_total',
'a_s',
't_s',
'houve_pernoite',
'qt_pernoite'
]));
Session::flash('mensagem_create', 'Ordem de serviço para o Sr. ' .$request->pnome. ' foi adicionada com sucesso!');
return redirect()->route('ficha.index');
}
More details of the error:
at HandleExceptions-> handleError ('2', 'array_key_exists (): The first argument should be either a string or an integer ', '/var/www/html/diarias/vendor/symfony/http-foundation/ParameterBag.php', '88', array ('key' => array ('local_servico', 'local_pernoite', 'start_date_date_time', 'start_date_time', 'backfill_data', 'backfill_time', 'additional_location', 'total_acrescimos', 'ck_valor_total', 'total_value', 'a_s', 't_s', 'ago_pernoite', 'qt_pernoite'), 'default' = > object (Request)))
A select (An example of how the inputs are)
{!! Form::select('local_servico[0]', ['placeholder'=>'LOCAL DE REALIZAÇÃO DO SERVIÇO (Cidade):', 'val_br_am_rj'=>'Brasília, Manaus ou Rio de Janeiro', 'val_bh_fl_pa_rc_sl_sp'=> 'Belo Horizonte, Fortaleza, Porto Alegre, Recife, Salvador ou São Paulo', 'val_capitais'=>'Outra capital de Estado', 'val_cidades'=>'Outra Cidade'], null, ['class' => 'form-control input-sm', 'title'=>'LOCAL DE REALIZAÇÃO DO SERVIÇO (Cidade)', 'id'=>'local_servico[0]']) !!}
The others are being created with JS:
{!! Form::select('local_servico[1]',..........
Any ideas?
Edited - Command Return
dd($request->all());
"ne" => ""
"em_proveito" => "UNIÃO"
"custeio" => "SEM CUSTO"
"tr" => array:2 [▼
0 => array:14 [▼
"local_servico" => "val_br_am_rj"
"houve_pernoite" => "s"
"qt_pernoite" => "4"
"local_pernoite" => "cg"
"data_afastamento_inicio" => "01/06/2017"
"hora_afastamento_inicio" => "08:00"
"data_afastamento_retorno" => "01/06/2017"
"hora_afastamento_retorno" => "08:00"
"adicional_deslocamento" => "SIM"
"total_acrescimos" => "DIÁRIA COMPLETA"
"valor_total" => "0"
"ck_valor_total" => "Sem Custo"
"t_s" => "0"
"a_s" => "0"
]
1 => array:14 [▼
"local_servico" => "val_bh_fl_pa_rc_sl_sp"
"houve_pernoite" => "s"
"qt_pernoite" => "3"
"local_pernoite" => "7"
"data_afastamento_inicio" => "15/06/2017"
"hora_afastamento_inicio" => "10:00"
"data_afastamento_retorno" => "18/06/2017"
"hora_afastamento_retorno" => "10:00"
"adicional_deslocamento" => "NÃO"
"total_acrescimos" => "1/2 DIÁRIA"
"valor_total" => "4"
"ck_valor_total" => "Sem Custo"
"t_s" => "3"
"a_s" => "2"
]
]
"fim_semana" => "dgh"
"conveniencia_servico" => "fghj"
"justificativa" => "fgh"
mais campos.....
In my controller I tried to save it as well
$diaria = Diaria::create($request->all());
$trInput = $request->get('tr');
$tr = array();
foreach($trInput as $tr)
{
$tr[] = new Trecho($tr);
}
$diaria->trechos()->saveMany($tr);
Example of my form:
<div id="camposAdd">
<div class="row">
<div title="Informe a cidade de realização do serviço" class="col-md-4">
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">19</span>
{!! Form::select('tr[0][local_servico]', ['placeholder'=>'LOCAL DE REALIZAÇÃO DO SERVIÇO (Cidade):', 'val_br_am_rj'=>'Brasília, Manaus ou Rio de Janeiro', 'val_bh_fl_pa_rc_sl_sp'=> 'Belo Horizonte, Fortaleza, Porto Alegre, Recife, Salvador ou São Paulo', 'val_capitais'=>'Outra capital de Estado', 'val_cidades'=>'Outra Cidade'], null, ['class' => 'form-control input-sm', 'title'=>'LOCAL DE REALIZAÇÃO DO SERVIÇO (Cidade)', 'id'=>'local_servico[0]']) !!}
</div>
</div>
<div class="col-md-2">
{!! Form::input('checkbox', 'tr[0][houve_pernoite]', $value = "s", $attributes = ['id'=>'hp[0]']) !!}   Houve Pernoite?
</div>
<div class="col-sm-2">
{!! Form::text('tr[0][qt_pernoite]', null, array('id'=>'qt_pernoite[0]','class' =>'form-control input-sm', 'placeholder'=>'QNT DE PERNOITES:')) !!}
</div>
<div title="Informe os locais de pernoite" class="col-md-4">
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">20</span>
{!! Form::text('tr[0][local_pernoite]', null, array('class' =>'form-control input-sm', 'placeholder'=>'LOCAL(IS) DE PERNOITE:')) !!}
</div>
</div>
EDITION: I'm trying like this, but it does not work out
public function edit($id){
if(!($diaria = Diaria::find($id))) {
throw new ModelNotFoundException("Ordem de serviço não encontrada!");
}
$tr = $diaria->trechos;
foreach ($tr['Trecho']['diaria_id'] as $value) {
$tr = Trecho::find($id);
}
return view('ficha.edit', compact('diaria', 'tr'));
}