Last active
August 29, 2015 14:17
-
-
Save galileoguzman/7e0623286073f52fdb8b to your computer and use it in GitHub Desktop.
Controller Post Laravel
This file contains hidden or 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 | |
class ArticuloController extends BaseController { | |
public function index() | |
{ | |
$articulos = Articulo::orderBy('created_at', 'DESC')->get(); | |
$total = Articulo::count(); | |
// load the view and pass the nerds | |
return View::make('articulos.index')->with(array('articulos' => $articulos, 'total' => $total)); | |
} | |
public function create() | |
{ | |
return View::make('articulos.create'); | |
} | |
public function store() | |
{ | |
$carpetaDestino = "uploads"; | |
$nombreImagen; | |
$rules = array( | |
'nombre' => 'required', | |
'cuerpo' => 'required', | |
'imagen_destacada' => 'required' | |
); | |
$validator = Validator::make(Input::all(), $rules); | |
if(Input::hasFile('imagen_destacada')) { | |
$nombreImagen = $this->generar_clave(15). '.' . Input::file('imagen_destacada')->getClientOriginalExtension(); | |
} | |
if ($validator->fails()) { | |
return Redirect::to('articulos/create') | |
->withErrors($validator) | |
->withInput(Input::except('password')); | |
} else { | |
$articulo = new Articulo; | |
$articulo->nombre = Input::get('nombre'); | |
$articulo->cuerpo = preg_replace('(\n)', '<br/><br/>', Input::get('cuerpo')); | |
$articulo->imagen_destacada = $nombreImagen; | |
$articulo->slug = $this->crear_slug(Input::get('nombre')); | |
$articulo->etiquetas = Input::get('etiquetas'); | |
$articulo->id_author = Auth::id();; | |
if($articulo->save()){ | |
Input::file('imagen_destacada')->move($carpetaDestino,$nombreImagen); | |
} | |
Session::flash('message', 'Successfully created article!'); | |
return Redirect::to('articulos'); | |
} | |
} | |
public function show($id) | |
{ | |
$articulo = Articulo::find($id); | |
return View::make('articulos.show')->with('articulo', $articulo); | |
} | |
public function edit($id) | |
{ | |
$articulo = Articulo::find($id); | |
return View::make('articulos.edit') | |
->with('articulo', $articulo); | |
} | |
public function update($id) | |
{ | |
$carpetaDestino = "uploads"; | |
$nombreImagen; | |
$rules = array( | |
'nombre' => 'required', | |
'cuerpo' => 'required', | |
); | |
$validator = Validator::make(Input::all(), $rules); | |
if(Input::hasFile('imagen_destacada')) { | |
$nombreImagen = $this->generar_clave(15). '.' . Input::file('imagen_destacada')->getClientOriginalExtension(); | |
}else{ | |
$articulo = Articulo::find($id); | |
$nombreImagen = $articulo->imagen_destacada; | |
} | |
if ($validator->fails()) { | |
return Redirect::to('articulos/' . $id . '/edit') | |
->withErrors($validator) | |
->withInput(Input::except('password')); | |
} else { | |
$articulo = Articulo::find($id); | |
$articulo->nombre = Input::get('nombre'); | |
$articulo->cuerpo = preg_replace('(\n)', "<br/>", Input::get('cuerpo')); | |
$articulo->etiquetas = Input::get('nombre'); | |
$articulo->imagen_destacada = $nombreImagen; | |
$articulo->save(); | |
Session::flash('message', 'Successfully updated article!'); | |
return Redirect::to('articulos'); | |
} | |
} | |
public function destroy($id) | |
{ | |
$articulo = Articulo::find($id); | |
$articulo->delete(); | |
Session::flash('message', 'Successfully deleted the article!'); | |
return Redirect::to('articulos'); | |
} | |
public function crear_slug($string) | |
{ | |
$characters = array("Á" => "A", "Ç" => "c", "É" => "e", "Í" => "i", "Ñ" => "n", "Ó" => "o", "Ú" => "u", "á" => "a", "ç" => "c", "é" => "e", "í" => "i", "ñ" => "n", "ó" => "o", "ú" => "u", "à" => "a", "è" => "e", "ì" => "i", "ò" => "o", "ù" => "u"); | |
$string = strtr($string, $characters); | |
$string = strtolower(trim($string)); | |
$string = preg_replace("/[^a-z0-9-]/", "-", $string); | |
$string = preg_replace("/-+/", "-", $string); | |
if(substr($string, strlen($string) - 1, strlen($string)) === "-") | |
{ | |
$string = substr($string, 0, strlen($string) - 1); | |
} | |
return $string; | |
} | |
private function generar_clave($longitud){ | |
$cadena="[^A-Z0-9]"; | |
return substr(preg_replace($cadena, "", md5(rand())) . | |
preg_replace($cadena, "", md5(rand())) . | |
preg_replace($cadena, "", md5(rand())), | |
0, $longitud); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment