Route::group(['middleware' => ['guest']], function () {
Route::get('/', 'Auth\LoginController@showLoginForm');
Route::match(['get','post'],'/login', 'Auth\LoginController@login')->name('login');
});
Route::match(['get','post'],'/logout','Auth\LoginController@logout')->name('logout')->middleware('auth');
Route::match(['get','post'],'/ se uso en vez de post
para evitar la exception MethodNotAllowedHttpException que dispara cuando, estando logueado, se tipea en la url /login
laravel maneja "automaticamente" a traves del middleware RedirectIfAuthenticated que cuando se esta logueado y se tipee en la url
la barra "/" o "/login" te redireccione a la ruta que hayas denominado como "home"
aunque el logout se puede manejar para evitar ataques Cross se va a manejar a traves del method POST, entonces en la vista
<div class="dropdown-menu dropdown-menu-right">
<div class="dropdown-header text-center">
<strong>Cuenta</strong>
</div>
<a class="dropdown-item" href="#"><i class="fa fa-user"></i> Perfil</a>
<a class="dropdown-item" href="#" onclick="event.preventDefault(); document.getElementById('frm-logout').submit();"><i class="fa fa-lock"></i> Cerrar sesión</a>
</div>
<form id="frm-logout" action="{{ route('logout') }}" method="POST" style="display: none;">
{{ csrf_field() }}
</form>
y en el controller:
public function logout(Request $request)
{
if ($request->isMethod('post')) {
Auth::logout();
$request->session()->invalidate();
return redirect('/');
}
return back();
}
laravel crear data de prueba
por ejemplo para crear usuarios
1) creamos una clase seeder
(la cual se creara dentro de database/seeds)
2) editamos el cuerpo de la clase USersTableSeeder
para indicar que modelo usaremos para crear registros y la cantidad de registros a crear
use Illuminate\Database\Seeder;
use App\User;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
factory(User::class, 5)->create();
}
}
3) ahora debemos crear la clase factory que se encuentra en database/factories
use Faker\Generator as Faker;
$factory->define(App\User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
'remember_token' => str_random(10),
];
});
4) EN la clase DatabaseSeeder, indicamos las llamadas a los seeders que se invocaran con una llamada general
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call(UsersTableSeeder::class);
}
}
5)
para llamar al run de databaseSeeder
1) creamos una clase seeder
php artisan make:seeder UsersTableSeeder
(la cual se creara dentro de database/seeds)
2) editamos el cuerpo de la clase USersTableSeeder
para indicar que modelo usaremos para crear registros y la cantidad de registros a crear
use Illuminate\Database\Seeder;
use App\User;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
factory(User::class, 5)->create();
}
}
3) ahora debemos crear la clase factory que se encuentra en database/factories
use Faker\Generator as Faker;
$factory->define(App\User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
'remember_token' => str_random(10),
];
});
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call(UsersTableSeeder::class);
}
}
5)
para llamar al run de databaseSeeder
php artisan db:seedpara llamar al run del seeder en particular
php artisan db:seed --class=UsersTableSeeder
laravel localization language
modificar
config/app.php
'locale' => 'es'
debe existir, sino hay que crearla, la carpeta
resources/lang/es
si usamos en un controller por ejemplo la siguiente
return back()->withErrors(['usuario'=>trans('auth.failed')]);
quiere decir que existe el archivo auth.php en resources/lang/es
con la sgt estructura:
<?php
return [
'failed' => 'Los datos ingresados no coinciden con nuestros registros.',
];
no olvidar limpiar la cache de la config:
php artisan config:cache
se puede descargar la carpeta es desde este repositorio
https://github.com/hosmelq/lang-spanish
react native 0.57 crear y ejecutar una primer aplicacion
1)
desde la consola
react-native init MiAplicacion
2) ir a la carpeta creada de la aplicacion y desde ahi:
npm add @babel/runtime
3) ir a android Studio
file->open
ir hasta la carpeta del proyecto y click en el archivo "android"
4) abrir AVD Manager
del listado de Your Virtual Devices click en el boton verde de play para lanzar ese emulador
5) desde la consola y dentro de la carpeta de la aplicacion creada:
react-native run-android
6) Si todo esta ok deberia aparecer en la pantalla del emulador el siguiente texto de prueba:
Welcome to React Native!
To get started, edit App.js
Double tap R on your keyboard to reload,
Shake or press menu button for dev menu
el cual se encuentra en App.js en la raiz del proyecto
desde la consola
react-native init MiAplicacion
2) ir a la carpeta creada de la aplicacion y desde ahi:
npm add @babel/runtime
3) ir a android Studio
file->open
ir hasta la carpeta del proyecto y click en el archivo "android"
4) abrir AVD Manager
del listado de Your Virtual Devices click en el boton verde de play para lanzar ese emulador
5) desde la consola y dentro de la carpeta de la aplicacion creada:
react-native run-android
6) Si todo esta ok deberia aparecer en la pantalla del emulador el siguiente texto de prueba:
Welcome to React Native!
To get started, edit App.js
Double tap R on your keyboard to reload,
Shake or press menu button for dev menu
el cual se encuentra en App.js en la raiz del proyecto
react native 0.57 seteos iniciales
informacion obtenida de
https://facebook.github.io/react-native/docs/getting-started.html
1) instalar chocolatey, un administrador de paquetes para windows:
desde la consola
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
2) instalar dependencias necesarias
choco install -y nodejs.install python2 jdk8
3) instalar el react cli (command line interface)
npm install -g react-native-cli
4) instalar android studio
5) al instalar android studio se instalara el ultimo sAndroid dk disponible pero para esta version de react native vamos a necesitar la
Android 8.0 (Oreo)
entonces vamos al SDK Manager
click en la pestana de SDK Platforms
(click en el checkbox inferior-derecha de "show package details")
check en Android 8.0 desplegar y verificar que esten tambien marcadas las opciones
click en "Apply".
6)setear en las variables de entorno android_home con el valor del sdk de android
ANDROID_HOME
usalmente se encuentra en esta direccion:
c:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk
7) crear un nuevo AVD android virtual device
click en el icono de AVD MAnager
click en +new Virtual Device
seleccionar el tab de Phone y click en Next
luego Select the "x86 Images" tab, then look for the Oreo API Level 26, x86_64 ABI image with a Android 8.0 (Google APIs) target.
listo
habra tambien que Install HAXM que seguramente te pedira al momento de hacerle clik en el boton triangular vede de play
https://facebook.github.io/react-native/docs/getting-started.html
1) instalar chocolatey, un administrador de paquetes para windows:
desde la consola
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
2) instalar dependencias necesarias
choco install -y nodejs.install python2 jdk8
3) instalar el react cli (command line interface)
npm install -g react-native-cli
4) instalar android studio
5) al instalar android studio se instalara el ultimo sAndroid dk disponible pero para esta version de react native vamos a necesitar la
Android 8.0 (Oreo)
entonces vamos al SDK Manager
click en la pestana de SDK Platforms
(click en el checkbox inferior-derecha de "show package details")
check en Android 8.0 desplegar y verificar que esten tambien marcadas las opciones
- Android SDK Platform 26
- Google APIs Intel x86 Atom_64 System Image
click en "Apply".
6)setear en las variables de entorno android_home con el valor del sdk de android
ANDROID_HOME
usalmente se encuentra en esta direccion:
c:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk
7) crear un nuevo AVD android virtual device
click en el icono de AVD MAnager
click en +new Virtual Device
seleccionar el tab de Phone y click en Next
luego Select the "x86 Images" tab, then look for the Oreo API Level 26, x86_64 ABI image with a Android 8.0 (Google APIs) target.
listo
habra tambien que Install HAXM que seguramente te pedira al momento de hacerle clik en el boton triangular vede de play
ubuntu error cuando ejecutamos php.exe PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/php_mbstring.dll
PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/php_mbstring.dll
editar el php.ini
comentar con un punto-y-coma al inicio, la siguiente linea
extension=php_mbstring.dll
;extension=php_mbstring.dll ; commented out
para saber donde se encuentra este archivo:
php -i | grep -i "Loaded Configuration File"
a veces si no se tiene permisos de escritura hay que modificarlo asi
editar el php.ini
comentar con un punto-y-coma al inicio, la siguiente linea
extension=php_mbstring.dll
;extension=php_mbstring.dll ; commented out
para saber donde se encuentra este archivo:
php -i | grep -i "Loaded Configuration File"
a veces si no se tiene permisos de escritura hay que modificarlo asi
sudo chmod 755 /etc/php/7.1/cli/php.ini
sublime3 psr2 plugin
1) Ctrl+shift+p
y buscamos "instALL PACKAGE"
2) luego buscamos "codeFormatter" le damos enter para que se instale
3) vamos a
preferences->package settings->Codeformatter->Settings default
y editar la variable
"php_path": "",
con la ruta donde se tiene instalado el php.exe
esto se puede averiguar tipeando en consola
whereis php
en mi caso es /usr/bin/php7.1
quedaria
"php_path": "/usr/bin/php7.1",
listo!
4) como usarlo?
abrir el archivo que quieras formatear
ctrl+shift+p
tipear "format code" y enter
(para archivos php esta por default seteado para que lo formatee en psr-2)
y buscamos "instALL PACKAGE"
2) luego buscamos "codeFormatter" le damos enter para que se instale
3) vamos a
preferences->package settings->Codeformatter->Settings default
y editar la variable
"php_path": "",
con la ruta donde se tiene instalado el php.exe
esto se puede averiguar tipeando en consola
whereis php
en mi caso es /usr/bin/php7.1
quedaria
"php_path": "/usr/bin/php7.1",
listo!
4) como usarlo?
abrir el archivo que quieras formatear
ctrl+shift+p
tipear "format code" y enter
(para archivos php esta por default seteado para que lo formatee en psr-2)
Suscribirse a:
Entradas (Atom)
linux ubuntu mint actualizar chrome
desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable
-
Vamos a crear un proyecto llamado SpringBoot01 para esto, -creamos un proyecto maven y configuramos el build path como vimos en el tutoria...
-
por consola y desde la raiz de tu proyecto php artisan --version
-
abrir una consola en la carpeta root de tu proyecto php app/console --version o php bin/console --version