Hello, follow my question:
I'm trying to save the data from the Checklist Protocol, but the following error is occurring:
SQLSTATE [22001]: String data, right truncated: 1406 Data too long for column 'item' at row 1
How can I solve this problem?
1. Here is the image of the modal Checklist Protocol: It is the form responsible for receiving the data entered by the user.
2.Hereistheerrorimagewhentryingtoregisterthedata: 3.LoginmethodChecklistProtocolController.phpclassThismethodisresponsibleforregisteringthedatafromthechecklistprotocolinthedatabase.
publicfunctioncadastroChecklistProtocolo(Request$request){//Deletaratabeladechecklist_protocolo$checklistsProtocolos=ChecklistProtocolo::where('projeto_id',$request->projeto_id)->delete();$data=$request->all();$dataInsert=[];//Observequeeutireiopush($dataInsert[])poisassimiriaadicionarmaisumaarraynofim$dataInsert=['projeto_id'=>$data['projeto_id'],'item'=>$data['item'],'modelo_id'=>$data['modelo_id'],'item_descricao_id'=>$data['item_descricao_id'],'sim_nao'=>$data['sim_nao'],'nao_atende'=>$data['nao_atende'],'dt_validade'=>$data['dt_validade'],'pagina_documento'=>$data['pagina_documento'],'observacao'=>$data['observacao'],];//dd($dataInsert);$dados=ChecklistProtocolo::create($dataInsert);$response=true;if($response){returnredirect()->route('projeto.edita',$request->projeto_id)->with('success',"Sucesso ao atualizar os Checklists do Protocolo");
}else
{
return redirect()
->back()
->with('error',"Erro ao atualizar o Checklists do Protocolo");
}
}
4. Modal Code ChecklistProtocol:
<!--Inicio do modal de Checklist do Projeto-->
<form id="checklistProtocolo" action="{{route('projeto.cadastroChecklistProtocolo')}}" method="POST">
{{ csrf_field() }}
<div class="modal fade modal-default" id="modalChecklist" aria-hidden="true" aria-labelledby="examplePositionCenter"
role="dialog" tabindex="-1">
<div class="modal-dialog2 modal-center">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title">Checklists do Protocolo</h4>
</div>
<div class="form-group col-md-4">
<input type="hidden" id="projeto_id" name="projeto_id" value="{{$projeto->id}}">
<input type="hidden" id="modelo_id" name="modelo_id" value="{{$modeloProtocolo[0]['id']}}">
<label class="control-label">Modelo</label>
<input type="text" class="form-control" name="modeloProcesso" value="{{$modeloProtocolo[0]['modelo']}}" disabled>
</div>
<div class="modal-body">
<div class="form-group col-md-18">
<table id="checklistProtocolo" name="checklistProtocolo" class="table table-hover table-striped table-responsive toggle-arrow-tiny" >
<caption></caption>
<thead>
<tr>
<th>Item</th>
<th>Descrição</th>
<th>Sim/Não</th>
<th>Não Atende</th>
<th>Data de Validade</th>
<th>Página do Documento</th>
<th><center>Observações</center> </th>
<th class="text-center"></th>
</tr>
</thead>
<tbody id="bodyChecklists">
@foreach($checklistsProtocolos as $checklistProtocolo)
<tr>
<td><input type="text" class="form-control" id="item" name="item[]" value="{{$checklistProtocolo->item}}" size ="2"></td>
<td>{{$checklistProtocolo->descricao_item}}</td>
<input type="hidden" id="item_descricao_id" name="item_descricao_id[]" value="{{$checklistProtocolo->item_descricao_id}}">
<td><input type="checkbox" id="sim_nao" name="sim_nao[]" {{$checklistProtocolo->sim_nao == null ? '' : 'checked'}}></td>
<td><input type="checkbox" id="nao_atende" name="nao_atende[]" {{$checklistProtocolo->nao_atende == null ? '' : 'checked'}}></td>
<td><input type="date" id="dt_validade" name="dt_validade[]" value="{{$checklistProtocolo->dt_validade}}"></td>
<td><input type="text" id="pagina_documento" name="pagina_documento[]" value="{{$checklistProtocolo->pagina_documento}}" size ="1"></td>
<td><input type="text" id="observacao" name="observacao[]" value="{{$checklistProtocolo->observacao}}" size ="1" style="width: 300px; height: 60px"></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div><!--Fim do modal-body-->
<div class="modal-footer">
<center>
<button type="submit" class="btn btn-primary" aria-hidden="true" style="width: 300px; height: 40px" > Salvar</button>
</center>
</div>
</div>
</div>
</div>
</form>
<!--Fim do modal do Checklist do Projeto-->
5. Template Code ChecklistProtocol.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use DB;
use SoftDeletes;
class ChecklistProtocolo extends Model
{
protected $table = "checklist_protocolo";
protected $primaryKey = ['projeto_id', 'modelo_id','itens_descricao_id'];
public $incrementing = false;
public $timestamps = false;
protected $fillable = ['projeto_id', 'modelo_id','item','itens_descricao_id','sim_nao', 'nao_atende','dt_validade','pagina_documento','observacao'];
protected $casts = [ 'item' => 'array', 'item_descricao_id'=> 'array','sim_nao' => 'array', 'dt_validade'=> 'array',
'pagina_documento'=> 'array', 'observacao'=> 'array', 'nao_atende'=> 'array'];
/*
public function checklistProtocolo()
{
return $this->belongsTo(ChecklistProtocolo::class, 'projeto_id','modelo_id', 'itens_descricao_id');
} */
//Este método salva os dados do Checklist do Protocolo
public function salvar(ChecklistProtocolo $checklistProtocolo) : Array
{
$checklistProtocolo = $this->save();
if($checklistProtocolo){
return[
'success' => true,
'message' => 'Sucesso ao cadastrar'
];
}
else{
return[
'success' => false,
'message' => 'Falha ao cadastrar'
];
}
}
//Este método remove os dados do Checklist do Protocolo
public function deletar(checklistProtocolo $checklistProtocolo) : Array
{
$checklistProtocolo = $this->delete();
if($checklistProtocolo){
return[
'success' => true,
'message' => 'Sucesso ao excluir'
];
}
else{
return[
'success' => false,
'message' => 'Falha ao excluir'
];
}
}
//Este método atualiza os dados do Checklist do Protocolo
public function alterar(checklistProtocolo $checklistProtocolo) : Array
{
$checklistProtocolo = $this->save();
if($checklistProtocolo){
return[
'success' => true,
'message' => 'Sucesso ao atualizar'
];
}
else{
return[
'success' => false,
'message' => 'Falha ao atualizar'
];
}
}
}