File: /var/www/html/xfacil.desafio.com.py/app/Http/Livewire/Competencias.php
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use App\Models\Competencia;
use App\Models\Formulario;
use Livewire\WithPagination;
class Competencias extends Component{
use WithPagination;
protected $queryString = ['buscar' => ['except' => '']];
protected $paginationTheme = 'bootstrap';
public $buscar='';
public $com_nom, $competencia_id, $formulario_id;
public $updateMode = false;
public function render(){
$formulario = Formulario::find($this->formulario_id);
$competencias=Competencia::where('com_nom','LIKE',"%{$this->buscar}%")->where('formulario_id',$formulario->id)->where('com_estado',1)->paginate(12);
return view('livewire.formularios.competencias.index',["competencias" => $competencias,"formulario" => $formulario]);
}
private function resetInputFields(){
$this->com_nom = '';
}
public function store()
{
$validatedDate = $this->validate([
'com_nom' => 'required',
'formulario_id' => 'required',
]);
Competencia::create($validatedDate);
$this->emit('alert', ['type' => 'success', 'message' => 'Competencia creada correctamente.']);
$this->resetInputFields();
}
public function edit($id)
{
$this->updateMode = true;
$competencia = Competencia::where('id',$id)->first();
$this->competencia_id = $id;
$this->com_nom = $competencia->com_nom;
$this->formulario_id = $competencia->formulario_id;
}
public function cancel()
{
$this->updateMode = false;
$this->resetInputFields();
}
public function update()
{
$validatedDate = $this->validate([
'com_nom' => 'required',
'formulario_id' => 'required',
]);
if ($this->competencia_id) {
$competencia = Competencia::find($this->competencia_id);
$competencia->update([
'com_nom' => $this->com_nom,
'formulario_id' => $this->formulario_id,
]);
$this->updateMode = false;
$this->emit('alert', ['type' => 'info', 'message' => 'Competencia actualizada correctamente.']);
$this->resetInputFields();
}
}
public function delete($id)
{
if($id){
$competencia = Competencia::find($id);
$competencia->update([
'com_estado' => 0,
]);
$this->emit('alert', ['type' => 'error', 'message' => '¡Competencia eliminada correctamente.!']);
}
}
}