jueves, 26 de abril de 2018



Creacion de un Blog Personal Con Laravel 5.6

Guardar una publicación de blog

Ahora necesitamos un controlador más para nuestras publicaciones de blog. Entonces, crea un archivo en la carpeta app/http/controller/, que se llamara ArticuloContoller.php. El código final del controlador debe ser el siguiente:

(Puedes crear el contralador usando el comando php artisan make:controller ArticuloController)


<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Articulo;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect;
use View;
class ArticuloController extends Controller
{
//
public function getIndex(){
$articulos = Articulo::with('Autor')-> orderBy('id', 'DESC')->paginate(5);
return View::make('index')->with('articulos',$articulos);
}
public function getAdmin(){
return View::make('agregarArticulo');
}
public function crearArticulo(){
Articulo::create(array(
'titulo' => Input::get('titulo'),
'contenido' => Input::get('contenido'),
'idAutor' => Auth::user()->id
));
return Redirect::route('index');
}
}

Asignando publicaciones de blog a los usuarios

La función crearArticulo() procesa la nueva solicitud de creación de publicación de blog en la base de datos. Como puede ver, podemos obtener la identificación del autor con un método mencionado anteriormente:

Auth::user()->id

Con este método, podemos asignar al usuario actual el articulo creado. Como verá, tenemos un nuevo método en la consulta:

Articulo::with('Autor')->

Si lo recuerda, hemos definido una función pública Autor() en nuestro modelo de Artículos:


public function Autor(){

        return $this->belongsTo('App\User','idAutor');

    }

El método belongsTo() es una función Eloquent para crear relaciones entre tablas. Básicamente, la función necesita una variable requerida y una variable opcional. La primera variable (requerida) define el Modelo objetivo. La segunda variable opcional es definir la columna fuente de la tabla del modelo actual. Si no define la variable opcional, la clase Eloquent busca en la columna thetargetModelName_id de nombre de destino. En la tabla de publicaciones, almacenamos los ID de los autores en la columna_id_original, no en la columna denominada ID_usuario. Debido a esto, necesitamos definir una segunda variable opcional en la función. Con este método, podemos pasar nuestras publicaciones de blog y toda la información de sus autores al archivo de plantilla. Puede pensar en el método como una especie de método de unión SQL.

Cuando queremos utilizar estas funciones de relación en consultas, podemos llamarlas fácilmente de la siguiente manera:

Libro::with('Categoria')->with('Autor')->get();

Es fácil administrar los archivos de plantilla blade con menos variables. Ahora solo tenemos una variable para pasar el archivo de plantilla, que se combina con todos los datos necesarios. Por lo tanto, necesitamos el segundo archivo de plantilla para enumerar nuestras publicaciones de blog. Esta plantilla funcionará en la interfaz de nuestro blog.

Listado de Articulos

Laravel pasa datos al archivo de plantilla como una matriz. Entonces, necesitamos usar el ciclo para analizar los datos en el archivo de la plantilla. También podemos usar un bucle foreach en los archivos de plantilla. Entonces crea un archivo index.blade.php en la capeta de vistas que se encuentra en la ruta ruta resourses/views el nombre del archivo sera  index.blade.php. El código debería verse de la siguiente manera.

resourses/views/index.blade.php
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Blog CesarGI</title>
</head>
<body>
<div>
<header>
<h1>
<a href="/">Mi Blog Cesar GI</a>
</h1>
<p>Bienvenidos a mi primer Blog</p>
</header>
<nav>
<ul>
<li><a href="/">INICIO</a></h4></li>
<li><a href="/admin">ADMIN</a></h4></li>
<li><a href="/logout">CERRAR SESION</a></h4></li>
</ul>
</nav>
<section id="principal">
<section id="contenido">
@foreach($articulos as $articulo)
<article>
<h2>{{$articulo->titulo}}</h2>
<p>{{$articulo->contenido}}</p>
<p>
<small>Posted by
<b>{{$articulo->Autor->name}}</b> at
<b>{{$articulo->created_at}}</b>
</small>
</p>
</article>
@endforeach
</section>
{{$articulos->links()}}
</section>
<!--FOOOTER-->
<footer>
<section id="seccion-footer">
<section >
<aside>
<h4>DERECHOS RESERVADOS PARA "CESAR GI" AUTOR DE <br>
<a href="http://www.codigojavalibre.com/">WWWW.CODIGOJAVALIBRE.COM</a></h4>
</aside>
</section>
</section>
</footer>
<!--FIN FOOOTER-->
</div>
</body>
</html>

Vamos a repasar el código. Hemos utilizado un bucle foreach dentro del archivo de plantilla para analizar todos los datos de los  artículos del blog. Además, vemos el uso combinado de datos de autor en el ciclo foreach. Como puede recordar, obtenemos la información del autor con el método belongsTo () en el lado del modelo. El análisis completo de datos relacionales se realiza dentro de una matriz, que se denomina nombre de función de relación. Por ejemplo, si tuviéramos una segunda función de relación, que se llama Categorías(), la consulta sería algo así como en el lado del controlador:

$libros = Libro::with('Autor')-> with('Categoria')->orderBy('id', 'DESC')->get();

El ciclo foreach se vería de la siguiente manera:


@foreach($libros as $libro)

<article>
<h2>{{$libro->titulo}}</h2>
<p>Autor: <b>{{$libro->Autor->name}}</b></p>
<p>Categoria: <b>{{$libro->Categoria->name}}</b></p>
</article>

@endforeach


Paginar el contenido

El método get () de Eloquent, que hemos utilizado en el lado del controlador en la consulta Eloquent, recupera todos los datos de la base de datos con una condición dada. A menudo necesitamos paginar el contenido para una interfaz fácil de usar y tener menos cargas de páginas y optimizaciones. La clase Eloquent tiene un método útil para hacer esto rápidamente, que se llama paginate(). Este método obtiene los datos paginados y genera enlaces de paginación en la plantilla con solo una línea de código. Abra el archivo app/controllers/ArticuloController.php y cambie la consulta de la siguiente manera:


$articulos = Articulo::with('Autor')-> orderBy('id', 'DESC')->paginate(5);

El método paginate() pagina los datos con el valor numérico dado. Por lo tanto, en cada paginación apareceran 5 publicaciones de artículos. También tenemos que cambiar nuestra plantilla para mostrar enlaces de paginación. Abra app/views/index.blade.php y agregue el siguiente código después del bucle foreach:

{{$articulos->links()}}

La sección en la plantilla, que tiene el ID como "principal", debería verse de la siguiente manera:


<section id="principal">
<section id="contenido">
@foreach($articulos as $articulo)
<article>
<h2>{{$articulo->titulo}}</h2>
<p>{{$articulo->contenido}}</p>
<p>
<small>Posted by
<b>{{$articulo->Autor->name}}</b> at
<b>{{$articulo->created_at}}</b>
</small>
</p>
</article>
@endforeach
</section>
{{$articulos->links()}}
</section>

La función links () generará enlaces de paginación automáticamente, si hay suficientes datos para paginar. De lo contrario, la función no muestra nada.

Terminando


En este tutorial, hemos creado un blog simple con las funciones incorporadas de Laravel y el controlador de base de datos Eloquent. Hemos aprendido cómo paginar los datos y el mecanismo de relación de datos básicos de Eloquent. También hemos cubierto el mecanismo de autenticación integrado de Laravel. En los siguientes capítulos, aprenderemos cómo trabajar con tablas más complejas y datos relacionales.


Y listo tendría su blog básico, para iniciar sesión usamos el usuario que creamos en la migracion:
Emal: admin@gmail.com
Password: admin

Espero les guste y seguiré avanzando este blog hecho en Laravel.

Indice del mini curso



Category: articles


Crea Un Blog Personal Con Laravel 5.6

Creando un área solo para miembros

Como saben, nuestro sistema de blog está basado en miembros. Por eso, necesitamos que algunas áreas solo sean accesibles por miembros, para agregar nuevas publicaciones al blog. Tenemos dos métodos diferentes para hacer esto. El primero es el método de filtro de ruta, que elaboraremos en los próximos capítulos. El segundo es la verificación de autorización basada en plantilla. Este método es una forma más efectiva de entender el uso de la clase Auth con el sistema de plantillas Blade.

Con la clase Auth podemos verificar el estado de autorización de un visitante con solo una línea de código:

Auth::check();

La función check(), que se basa en la clase Auth, siempre devuelve verdadero o falso. Entonces, eso significa que podemos usar fácilmente la función en una declaración if/else en nuestro código. Como sabrá en capítulos anteriores, con el sistema de plantillas blade pudimos usar ese tipo de declaración PHP en los archivos de plantilla.

Antes de crear los archivos de plantilla, necesitamos escribir nuestras rutas. Necesitamos cuatro rutas para nuestra aplicación. Estos son:

  • Una ruta de inicio de sesión para procesar las solicitudes de inicio de sesión.
  • Una nueva ruta de publicación para procesar nuevas solicitudes de publicaciones
  • Una ruta de administrador para mostrar un nuevo formulario de publicación y un formulario de inicio de sesión
  • Una ruta de índice para publicar publicaciones.
El enrutamiento con nombre es otra característica sorprendente del marco de Laravel para un desarrollo rápido. Las rutas con nombre permiten hacer referencia a las rutas al generar redirecciones o URL de manera más cómoda. Puede especificar un nombre para una ruta de la siguiente manera:


Route::get('todos/articulos', function () {
    //
})->name('articulos');


También puede especificar nombres de ruta para los controladores:


Route::get('todos/articulos', 'ArticulosController@showArticulos')->name('todosarticulos');


Gracias a las rutas nombradas, podemos crear fácilmente URLs para nuestra aplicación:


<?php

//URLS DE NUESTRA APLICACION
Route::get('/', 'ArticuloController@getIndex')->name('index');
Route::get('/admin', 'ArticuloController@getAdmin')->name('area_admin');
Route::post('/add', 'ArticuloController@crearArticulo')->name('crear_nuevo_articulo');
Route::post('/login', 'UserController@postLogin')->name('login');
Route::get('/logout', 'UserController@getLogout')->name('logout');


Ahora necesitamos escribir el código para el controlador y las plantillas de nuestra aplicación. Primero, podemos comenzar a codificar desde nuestra área de administración. Vamos a crear un archivo en resources/views/ con el nombre agregarArticulo.blade.php. Nuestra plantilla de administrador debe ser similar a la siguiente:

agregarUnaVista-laravel



<html>

<head>
    <title>Mi Primer Blog</title>
    <link rel="stylesheet" type="text/css" href="/assets/css/style.css">
    
</head>

<body>
    @if(Auth::check())
    <section>
        <div >
            <h1>Bienvenidos al area de Administracion, {{Auth::user()->name}} 
            </h1>
            <form name="crearArticulo" method="POST" action="{{URL::route('crear_nuevo_articulo')}}">
                {{ csrf_field() }}
                <p>
                    <input type="text" name="titulo" placeholder="Titulo del articulo" value="" />
                </p>
                <p>
                    <textarea name="contenido" placeholder="Contenido del articulo"></textarea>
                </p>
                <p>
                    <input type="submit" name="submit" />
                </p>
            </form>
        </div>
    </section>
    @else
    <section>
        <div class="login">
            <h1>Login</h1>
            <form name="login" method="POST" action="{{URL::route('login')}}">
                {{ csrf_field() }}
                <p>
                    <input type="text" name="email" value="" placeholder="Email">
                </p>
                <p>
                    <input type="password" name="password" value="" placeholder="Password">
                </p>
                <p class="submit">
                    <input type="submit" name="commit" value="Login">
                </p>
            </form>
        </div>
    </section>
    @endif
</body>

</html>



Como puede ver en el código, usamos if/else  para verificar las credenciales de inicio de sesión de un usuario. Sabemos desde el comienzo de esta sección que usamos la función Auth::check() para verificar el estado de inicio de sesión de un usuario. Además, hemos utilizado un nuevo método para obtener el nombre del usuario que ha iniciado sesión actualmente:

Auth::user()->name;

Podemos obtener cualquier información sobre el usuario actual con el método user:

Auth::user()->id; 
Auth::user()->email;

El código de la plantilla primero verifica el estado de inicio de sesión del visitante. Si el visitante se ha conectado, la plantilla muestra un nuevo formulario de publicación; de lo contrario, muestra un formulario de inicio de sesión.

Ahora tenemos que codificar el lado del controlador de nuestra aplicación de blog. Comencemos desde nuestro controlador de usuario. Crea un archivo en la carpeta app/controller/, que se nombre UserContoller.php (Podemos usar artisan para crear el controlador, como la imagen siguiente). El código final del controlador debe ser el siguiente:

crear controlador usuario para el blog laravel


<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect;
use App\User;
class UserController extends Controller
{
//
public function postLogin()
{
Auth::attempt(array('email' => Input::get('email'),'password' => Input::get('password')));
return redirect()->route('area_admin');
}
public function getLogout()
{
Auth::logout();
return Redirect::route('index');
}
}

El controlador tiene dos funciones: la primera es la función postLogin(). Esta función básicamente verifica los datos del formulario publicado para el inicio de sesión del usuario y luego redirige al visitante a la ruta crear_nuevo_articulo para mostrar el nuevo formulario de publicación. La segunda función procesa la solicitud de desconexión y redirige a la ruta index.


Indice del mini curso



Category: articles


Creación de un Blog Personal Con Laravel 5.6

Para definir nuestras columnas y especificaciones de tabla, necesitamos editar este archivo. Después de editar el archivo de migración, debería verse así:








<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateArticulosTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('articulos', function (Blueprint $table) {
            $table->increments('id');
            $table->string('titulo');
            $table->text('contenido');
            $table->integer('idAutor');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('articulos');
    }
}

Después de guardar el archivo, necesitamos usar un comando artisan simple para ejecutar migraciones:

php artisan migrate

Si no ocurre ningún error, verifique la  base de datos blog y la tabla artículos.

Modelo Articulo

Como usted sabe, para cualquier cosa relacionada con las operaciones de bases de datos en Laravel, el uso de modelos es la mejor práctica. Nos beneficiaremos del ORM Eloquent.

Abra nuestro archivo app/Articulos.php y agregue el siguiente código.


<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Articulo extends Model
{
    protected $table = 'articulos';

    protected $fillable = [
        'titulo',
        'contenido',
        'idAutor'
    ];

    public $timestamps = true;

    public function Autor(){

        return $this->belongsTo('App\User','idAutor');
    }



}

Hemos establecido el nombre de la tabla de la base de datos con la variable protegida $table. También hemos establecido columnas editables con la variable $fillable y las marcas de tiempo con la variable $timestamps , como ya hemos visto y utilizado en los capítulos anteriores. Las variables que se definen en el modelo son suficientes para usar el ORM elocuente de Laravel. Cubriremos la función pública Autor()  y explicaremos la utilidad de esta función en los siguientes capitulos.

Nuestro modelo de publicaciones está listo. Ahora necesitamos un modelo de autores y una base de datos para asignar publicaciones de blog a los autores. Investiguemos el mecanismo de autenticación incorporado de Laravel.

Agregar un usuario

Ahora necesitamos crear un nuevo archivo de migración para agregar algunos autores a la base de datos. Podemos hacerlo ejecutando el siguiente comando:

php artisan make:migration crear_algunos_users

Abra el archivo de migración y edite la función  up() de la siguiente manera:


<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
use App\User;

class CrearAlgunosUsers extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        //
        User::create(array(
            'email' => 'admin@gmail.com',
            'password' => Hash::make('admin'),
            'name' => 'Cesar GI'
        ));
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        //
    }
}


Usamos una nueva clase en la función up(), que lleva el nombre Hash. Laravel tiene una clase de comprobador/fabricante de hash, que se basa en seguro Bcrypt. Bcrypt es un método de hashing aceptado y seguro para datos importantes como contraseñas.

Para ejecutar la migración y crear el usuario ejecute el comando artisan.

php artisan migrate

Ahora, revisa la tabla users para ver el registro. En la columna password peras el cifrado.

Es muy importante almacenar de forma segura las contraseñas de sus usuarios y sus datos críticos.



Indice del mini curso



Category: articles


Creación de un Blog Personal Con Laravel 5.6

1. Crear y migrar la base de datos de publicaciones

Suponemos que ya ha definido las credenciales de la base de datos en el archivo app/config/database.php . Para esta aplicación, necesitamos una base de datos. Simplemente puede crear y ejecutar el siguiente comando SQL o, básicamente, puede usar la interfaz de administración de la base de datos, algo así como phpMyAdmin:

Yo he usado una base de datos MySQL con el nombre de blog, como en la siguiente imagen:


Crear y migrar la base de datos de publicaciones

Una vez creada la base de datos, vamos a configurar el archivo .env donde indicaremos la conexion, el nombre de la base de datos, el user y el password como en la siguiente imagen. (En mi caso no tengo contraseña así que la dejo en blanco).

Crear un blog personal con Laravel


Después de crear con éxito la base de datos para la aplicación, primero debemos crear una tabla de publicaciones e instalarla en la base de datos. Para hacer esto, abra su terminal, navegue la raiz de su proyecto y ejecute este comando artisan:

php artisan make:model Articulo -m

Este comando generará un archivo modelo app/Articulo.php y otro archivo de migración en la carpeta app/database/migrations que servirá para crear la tabla posts en nuestra base de datos llamada blog.

Indice del mini curso



Category: articles


Crea Un Blog Personal Con Laravel 5.6

En este articulo, programaremos un blog personal simple con Laravel. El Tutorial sera realizado con la versión Laravel 5.6. Por lo tanto, también cubriremos la autenticación integrada, el mecanismo de paginación y las rutas con nombre. Elaboraremos algunos métodos de desarrollo rápidos, que vienen con Laravel, como la creación de URL de ruta.

Los siguientes temas ha explicar y realizar serán:



  • Crear y migrar la base de datos de publicaciones
  • Creando un modelo de publicaciones
  • Creando y migrando la base de datos de autores
  • Creando un área solo para miembros
  • Guardar una publicación de blog
  • Asignando publicaciones de blog a los usuarios
  • Listado de Articulos
  • Paginar el contenido
Al terminar esta parte nos quedara algo así.


Crear un blog personal con Laravel

La vista de Login

Crear un bloc personal con Laravel


Al iniciar sesion en nuestro blog, aparecerá una interfaz de administración para escribir el titulo y el contenido del Articulo.



Al escribir los Artículos se irán listando el la pagina de inicio.

Crear un blog personal con Laravel 5.6


Y eso seria todo espero que les guste el tutorial, mas adelante se le agregara estilos he intentare que quede mas profesional con alguna plantilla de administración y mas programación.


Indice del mini curso




Category: articles

miércoles, 11 de abril de 2018

El gasto global de TI aumentará un 6.2 por ciento para llegar a $ 3.7 billones (£ 2.6bn) en 2018, según Gartner.

El gasto en TI aumentará


Su último pronóstico predice que el sector de dispositivos, es decir, teléfonos inteligentes, tabletas y computadoras, aumentará un 6,6 por ciento en el transcurso del año, más del 5,1 por ciento que subió el año pasado, a $ 715 mil millones (£ 506 millones).

"El mercado de dispositivos sigue mostrando una doble dinámica: algunos usuarios se están retrasando en la compra y los que lo están haciendo lo hacen, en promedio, a precios más altos", dijo John-David Lovelock, vicepresidente de investigación de Gartner.

Oleada

"Como resultado, el gasto del usuario final aumentará más rápido que las unidades hasta el 2022. Sin embargo, se espera que el gasto total de los usuarios finales y las unidades sean menores en comparación con las previsiones anteriores, ya que la demanda de dispositivos ultramóviles premium, dispositivos móviles ultramóviles y teléfonos básicos se espera que sea lento ".

El gasto en software empresarial disfrutará de la tasa de crecimiento más alta de 11. 1 por ciento gracias a los proyectos de transformación digital en curso, una tendencia que se espera continúe en 2019.

Los servicios de TI crecerán un 7,4 por ciento, mientras que los servicios de comunicaciones aumentarán un 4,3 por ciento, seguidos del gasto en centros de datos, que aumentará un 3,7 por ciento. El segmento fue testigo de un fuerte 2017, pero los desafíos en el almacenamiento y la escasez de componentes se vislumbran en el horizonte.

Los analistas sugieren que una de las principales razones del aumento podría deberse a las fluctuaciones de las divisas y las estimaciones de la tasa de crecimiento a principios de 2019 para toda la industria de TI son del 2,8 por ciento.

"Aunque se pronostica que el gasto global de TI crecerá un 6,2 por ciento este año, la caída del dólar estadounidense ha provocado vientos en cadena, que son la razón principal de este fuerte crecimiento", dijo Lovelock.

"Esta es la tasa de crecimiento anual más alta que Gartner ha pronosticado desde 2007 y sería un signo de un nuevo ciclo de crecimiento de TI. Sin embargo, el gasto en TI en todo el mundo está creciendo a los niveles esperados y está en línea con el crecimiento económico mundial esperado. Durante 2018 y 2019, se espera que el dólar estadounidense tenga una tendencia más fuerte mientras soporta una tremenda volatilidad debido al entorno político incierto, la renegociación del Tratado de Libre Comercio de América del Norte y el potencial de guerras comerciales ".


Fuentes: https://www.techradar.com/news/it-spending-to-rise-by-62-percent-in-2018
Category: articles

jueves, 4 de enero de 2018

¿Cuáles son las nuevas características en Laravel 5.5? - Parte 1

Cuáles son las nuevas características en Laravel 5.5

Route Helpers

Ahora puede usar algún método útil con su Route, haga clic aquí para saber más sobre los Ayudantes de ruta.

Laravel Migrate Fresh Command

Hay una nueva característica agregada con migrate:namespace   en Laravel 5.5.

Antes de Laravel 5.5, Usted estaba usando el comando  migrate:refresh para deshacer sus migraciones existentes, pero con la nueva versión de Laravel 5.5, hay una mejora con el comando migrate:fresh que descarta toda la tabla y luego la migra desde el inicio.

Al ejecutar el comando migrate:refresh, verá la siguiente salida en su terminal:

php artisan migrate:refresh

Output :
Rolling back: 2014_10_12_100000_create_password_resets_table
Rolled back: 2014_10_12_100000_create_password_resets_table
Rolling back: 2014_10_12_000000_create_users_table
Rolled back: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table
Ahora ejecute el migrate:freshcomando y vea el resultado:

php artisan migrate:fresh

Output :

Dropped all tables successfully.

Migration table created successfully.

Migrating: 2014_10_12_000000_create_users_table

Migrated:  2014_10_12_000000_create_users_table

Migrating: 2014_10_12_100000_create_password_resets_table

Migrated:  2014_10_12_100000_create_password_resets_table


Support for Email Themes in Mailable

Laravel 5.4 ofrece correos de Markdown que proporcionan un tema predeterminado para componer correos electrónicos en Markdown, pero con el lanzamiento de Laravel 5.5, hay mucha más flexibilidad para usar el tema de correo electrónico directamente en la clase Mailable.

Deberá escribir sus estilos en un .css archivo para usar un tema personalizado para un mailable específico.

touch resources/views/vendor/mail/html/themes/cliente.css

Ahora puede especificar una propiedad $theme en la clase Mailable:


<?php

clase SendNotification extends Mailable
{
    protected $ theme  =  'cliente' ;
    [...]
}



Category: articles