Lección 13: Blog para SEO
Para crear un blog con una orientación hacia el posicionamiento SEO de una tienda se debe tener alguna estrategia en la generación de contenidos, como blog
Modelo:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Publicaciones extends Model
{
protected $fillable = [
'slug', 'title','description','nombre','descripcion', 'urlfoto','visitas','orden','categorias_id'
];
public function categorias(){
return $this->belongsTo("App\Categorias");
}
}
Migration:
Schema::create('publicaciones', function (Blueprint $table) {
$table->increments('id');
$table->string('slug',50)->unique();
$table->string('title',67);
$table->string('description',155);
$table->string('nombre',50);
$table->text('descripcion');
$table->string( 'urlfoto',100)->default('foto.jpg');
$table->integer('visitas')->default(0);
$table->integer('orden')->default(0);
$table->integer('categorias_id')->unsigned();
$table->foreign('categorias_id')->references('id')->on('categorias');
$table->timestamps();
});
Controlador:
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Publicaciones;
use App\Categorias;
class PublicacionesController extends Controller
{
public function index()
{
$publicaciones = Publicaciones::all();
return view("admin.publicaciones.index",compact('publicaciones'));
}
public function create()
{
$categorias = Categorias::orderBy('nombre','asc')->pluck('nombre','id');
return view("admin.publicaciones.create",compact("categorias"));
}
public function store(Request $request)
{
$publicacion = new Publicaciones($request->all());
if($request->hasfile('urlfoto')):
$urlfoto = $request->file('urlfoto');
$ruta = public_path('/img/publicaciones/'.$request->file('urlfoto')->getClientOriginalName());
copy($urlfoto->getRealPath(),$ruta);
$publicacion->urlfoto =$request->file('urlfoto')->getClientOriginalName();
endif;
$publicacion->save();
return redirect()->route('admin.publicaciones.index');
}
public function edit($id)
{
$publicacion = Publicaciones::whereId($id)->first();
$categorias = Categorias::orderBy('nombre','asc')->pluck('nombre','id');
return view("admin.publicaciones.edit",compact('publicacion','categorias'));
}
public function update(Request $request, $id)
{
$publicacion = Publicaciones::findOrFail($id);
$publicacion->fill($request->all());
if($request->hasfile('urlfoto')):
$urlfoto = $request->file('urlfoto');
$ruta = public_path('/img/publicaciones/'.$request->file('urlfoto')->getClientOriginalName());
copy($urlfoto->getRealPath(),$ruta);
$publicacion->urlfoto =$request->file('urlfoto')->getClientOriginalName();
endif;
$publicacion->save();
return redirect()->route('admin.publicaciones.index');
}
public function destroy($id)
{
$publicacion = Publicaciones::findOrFail($id);
if(file_exists(public_path('/img/publicaciones/'.$publicacion->urlfoto) ))
unlink(public_path('/img/publicaciones/'.$publicacion->urlfoto));
$publicacion->delete();
return redirect()->route('admin.publicaciones.index');
}
}
1407 visitas