Vinícius, eu estou fazendo um sistema, mas as funcionalidades de editar e excluir não consegui fazer funcionar, pode me dar uma ajudinha, por favor? Eu executar F5 , os dados antigos são exibidos e ao consultar o banco, percebo q não foram persistidos.
Minha migration:
Schema::create('tb_banco', function(Blueprint $table)
{
$table->integer('ID_BANCO', true);
$table->string('CD_BANCO', 5);
$table->string('NM_BANCO', 100);
});
Minha model:
protected $table = 'tb_banco';
protected $primaryKey = 'id_banco';
public $timestamps = false;
protected $fillable = ['cd_banco','nm_banco'];
Minha controller:
public function editaNome(int $id, Request $request)
{
$novoNome = $request->nome;
$banco = Banco::find($id);
$banco->nm_banco = $novoNome;
$banco->save();
}
Router:
Route::post('/banco/{id}/editaNome', 'BancoController@editaNome')
->middleware('autenticador');
Javascript:
function editarBanco(id) {
let formData = new FormData();
const nome = document
.querySelector(`#input-nome-banco-${id} > input`)
.value;
const token = document
.querySelector(`input[name="_token"]`)
.value;
formData.append('nome', nome);
formData.append('_token', token);
const url = `/banco/${id}/editaNome`;
fetch(url, {
method: 'POST',
body: formData
}).then(() => {
toggleInput(id);
document.getElementById(`nome-banco-${id}`).textContent = nome;
});
}
Minha view index.blade:
<ul class="list-group">
@foreach($bancos as $banco)
<li class="list-group-item d-flex justify-content-between align-items-center">
<span id="cod-banco-{{ $banco->ID_BANCO }}" >{{ $banco->CD_BANCO }}</span>
<span id="nome-banco-{{ $banco->ID_BANCO }}">{{ $banco->NM_BANCO }}</span>
<div class="input-group w-50" hidden id="input-nome-banco-{{ $banco->ID_BANCO }}">
<input type="text" class="form-control" value="{{ $banco->NM_BANCO }}">
<div class="input-group-append">
<button class="btn btn-primary" onclick="editarBanco({{ $banco->ID_BANCO }})">
<i class="fas fa-check"></i>
</button>
@csrf
</div>
</div>
<span class="d-flex">
@auth
<button class="btn btn-info btn-sm mr-1" onclick="toggleInput({{ $banco->ID_BANCO }})">
<i class="fas fa-edit"></i>
</button>
<form method="post" action="/banco/{{ $banco->ID_BANCO }}"
onsubmit="return confirm('Tem certeza que deseja remover {{ addslashes($banco->NM_BANCO) }}?')">
@csrf
@method('DELETE')
<button class="btn btn-danger btn-sm">
<i class="far fa-trash-alt"></i>
</button>
</form>
@endauth
</span>
</li>
@endforeach
</ul>