1
I couldn’t make a mistake:
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', 'hou_start_distance', 'return data_distance', 'return hora_distance', 'addl_shift', 'total_add', 'ck_total value', 'total value', 'a_s', 't_s', 'houve_overnight', 'qt_overnight'), 'default' => Object(Request)))
A select (An example of how 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 idea?
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 so
$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>
EDIT: I’m trying this way but it doesn’t work
    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'));
}
How each item of
trechosthat’s the problem!– novic
It is created via JS.. the inputs are named array: {!! Form::select('tr[0][local_servico]', .... {!! Form::input('checkbox', 'tr[0][houve_overnight]',...
– Denis Vanoni
Could you illustrate in your question!
– novic
The problem happens because inside the same
arrayyou have key by value and by text you should search only by value for what I could understand or else changing the name would be a good option.– novic
@Virgilionovic exactly.. That’s the problem. I have to go through one array after another and save to the database while the chunk is filled in.
– Denis Vanoni
Take a test with my reply @Denis
– novic
@Virgilionovic notification came to the wrong Denis
– Denis Rudnei de Souza
kkkkk thanks @Virgilionovic I will take the test and I answer you!
– Denis Vanoni