Last active
June 4, 2023 17:40
-
-
Save devloe/182488903a5c2b63d87b to your computer and use it in GitHub Desktop.
Ejemplo básico de CRUD en Laravel
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Tenemos un objeto producto en la base de datos | |
class Product extends Eloquent | |
{ | |
protected $table = 'products'; | |
} | |
class BaseController extends Controller{ | |
public function getDelete($id) | |
{ | |
// Eliminamos el registro de la base de datos | |
$this->model()->find($id)->delete(); | |
return 'Registro eliminado'; | |
} | |
public function getListado($id){ | |
{ | |
// Obtenemos el listado de registros | |
$registros = $this->model()->orderBy('fecha', 'desc')->get(); | |
// Mostramos la vista y le pasamos los registros | |
// asi luego podemos hacer foreach($registros as $registro){ ... } | |
return View::make('forms/'.$this->type)->with('registros', $registros); | |
} | |
public function getForm($id = null) | |
{ | |
$datos = $this->model(); | |
// Si $id no es nulo, obtenemos el | |
// registro de la base de datos | |
if($id){ | |
$datos = $this->model()->find($id); | |
} | |
// Mostramos la vista y le pasamos los datos | |
// del registro para rellenar el formulario, | |
// de manera que en la vista podamos hacer $data->precio por ej. | |
return View::make('forms/'.$this->type)->with('datos', $datos); | |
} | |
} | |
class ProductsController extends BaseController{ | |
// Esto es el nombre del objeto para identificarlo | |
protected $type = 'products'; | |
// Esto sirve para pasar el modelo que vamos a utilizar | |
// al controlador para manejar los registros | |
protected function model() | |
{ | |
return new Product; | |
} | |
} | |
// Registramos la ruta, y le asignamos el controlador. | |
// De esta manera podemos hacer uso de por ejemplo: | |
// /productos/delete/18 | |
// /productos/form - Muestra formulario vacio para crear un nuevo registro | |
// /productos/form/16 - Muestra formulario rellenado | |
// /productos/listado | |
Route::controller('products', 'ProductsController'); | |
// Podemos crear cuantos controladores queramos | |
// en función de los objetos que tengamos, por ej.: | |
// | |
class ViajesController extends BaseController{ | |
// Esto es el nombre del objeto para identificarlo | |
protected $type = 'viajes'; | |
// Esto sirve para pasar el modelo que vamos a utilizar | |
// al controlador para manejar los registros | |
protected function model() | |
{ | |
return new Viaje; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment