Skip to content

josemalcher/CURSO-DE-LARAVEL-53-BASICO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 

Repository files navigation

CURSO DE LARAVEL 5.3 - BÁSICO

https://academy.especializati.com.br/curso/laravel-53-basico-gratis

CURSO BÁSICO PARA QUEM ESTÁ COMEÇANDO NO MUNDO LARAVEL E QUER DESFRUTAR DESTE INCRÍVEL E PODEROSO FRAMEWORK PHP. NESTE CURSO INTRODUZIMOS OS CONCEITOS DO FRAMEWORK ATÉ A CRIAÇÃO COMPLETA DO NOSSO PRIMEIRO CRUD.

  1. Instalando o Laravel 5.3
  2. Estrutura de Pastas do Laravel 5.3
  3. Criar VirtualHost
  4. Rotas Laravel 5.3
  5. Rotas Final Laravel 5.3
  6. Controllers Laravel 5.3
  7. Controllers Resource Laravel 5.3
  8. Views Laravel 5.3
  9. Sistema de Template Blade Laravel 5.3
  10. Sistema de Template Blade Laravel 5.3 Parte 2
  11. Blade stacks
  12. Migrations Laravel 5.3
  13. Migration Refresh Laravel 5.3
  14. Seeders
  15. Models Laravel 5.3
  16. Primeiro Cadastro no Banco de Dados Laravel 5.3
  17. Update Laravel 5.3
  18. Delete Laravel 5.3
  19. Melhorar a Listagem dos Itens no Laravel (CSS e Bootstrap)
  20. Formulários no Laravel 5.3
  21. Requests Laravel 5.3
  22. Cadastrar Dados do Formulário no Laravel 5.3
  23. Validação de dados no Laravel 5.3
  24. Personalizar Mensagens de Erros (Validação)
  25. Form Request Validation no Laravel
  26. Preparando para editar dados no Laravel
  27. Update dados laravel no Laravel 5.3
  28. Pacote Collective Form and HTML no Laravel
  29. Deletar Dados no Laravel
  30. Paginação

composer create-project --prefer-dist laravel/laravel laravel53-basico "5.3.*"

Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


Route::get('/nome/nome1/nome2/nome3', function (){
    return "Rota Grande";
})->name('rota.nomeada');

Route::any('/any', function (){
    return 'Route Any';
});

Route::match(['get', 'post'],'/match', function (){
   return 'Router Match';
});

Route::post('/post', function (){
    return "Route Post"; // ideal para form's
});

Route::get('/contato', function (){
    return 'Contato';
});

Route::get('/empresa', function (){
    return view('empresa');
});

/*
Route::get('/', function () {
    return view('welcome');
});
*/

Route::get('/', function () {
    return redirect()->route('rota.nomeada');
});

Voltar ao Índice


Route::get('/categoria/{idCat}/nome-fixo/{param2}', function ($idCat, $param2){
    return "Post da Categoria {$idCat} e {$param2}";
});

Route::get('/categoria2/{idCat?}', function ($idCat = "Nenhuma"){
    return "Post da Categoria {$idCat}";
});

//Grupos de Rote

Route::group(['prefix'=>'painel', 'middleware'=> 'auth'], function (){
    Route::get('grupo1', function (){
        return "GRupo 1";
    });
    Route::get('grupo2', function (){
        return "GRupo 2";
    });
    Route::get('/', function (){
        return 'Dashboard';
    });
});

Route::get('/login', function (){
    return "#form login";
});

Voltar ao Índice


php artisan make:controller Painel\\PainelController
<?php

namespace App\Http\Controllers\Site;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class SiteController extends Controller
{
    public function index()
    {
        return 'Controller Site';
    }

    public function contato()
    {
        return "Controller página de contato";
    }

    public function categoria($id)
    {
        return "Categoria {$id}";
    }

    public function categoriaOp($id = "Sem Categoria")
    {
        return "Categoria {$id}";
    }
}
<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

/*
 Route::get('/', 'Site\SiteController@index');
Route::get('/contato', 'Site\SiteController@contato');

Route::get('/categoria/{id}', 'Site\SiteController@categoria');
Route::get('/categoria2/{id?}', 'Site\SiteController@categoriaOp');
*/

Route::group(['namespace'=>'Site'], function (){
    Route::get('/', 'SiteController@index');
    Route::get('/contato', 'SiteController@contato');

    Route::get('/categoria/{id}', 'SiteController@categoria');
    Route::get('/categoria2/{id?}', 'SiteController@categoriaOp');
});

Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


<?php

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

class CreateProductsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name', 150);
            $table->integer('number');
            $table->boolean('active');
            $table->string('image')->nullable();
            $table->enum('category', ['eletronicos', 'moveis', 'limpeza', 'banho']);
            $table->text('description');
            $table->timestamps();
        });
    }

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

Voltar ao Índice


php artisan migrate:refresh

Rolled back: 2020_06_15_021142_create_products_table
Rolled back: 2014_10_12_100000_create_password_resets_table
Rolled back: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table
Migrated: 2020_06_15_021142_create_products_table


Voltar ao Índice


php artisan make:seeder UserTableSeeder

php artisan db:seed

<?php

use Illuminate\Database\Seeder;
use App\User;

class UserTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        User::create([
            'name'=> 'José Malcher',
            'email'=> 'contato@josemalcher.net',
            'password'=> bcrypt('123456')
        ]);
    }
}

Voltar ao Índice


php artisan make:model Models\Painel\Product

Voltar ao Índice


Route::get('/painel/produtos/testes', 'Painel\ProdutoController@testes');
    /* TESTES */
    public function testes()
    {
        /*
        $prod = $this->product;
        $prod->name = 'Produto X1';
        $prod->number = '2';
        $prod->active = true;
        $prod->category = 'eletronicos';
        $prod->description = 'Descição produto x1';

        $insert = $prod->save();
        if ($insert) {
            return "Inserido com sucesso";
        } else {
            return "Falha ao inserir";
        }
        */

        $insert = $this->product->create([ // Importante para proteção dos dados gravados
            'name' => 'Nome Pro x3',
            'number' => '3',
            'active' => false,
            'category' => 'eletronicos',
            'description' => 'Desc x3',
        ]);
        if ($insert) {
            return "Inserido com sucesso com CREATE {$insert->id}";
        } else {
            return "Falha ao inserir";
        }
    }
<?php

namespace App\Models\Painel;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    protected $fillable = [
        'name', 'number', 'active', 'category', 'description'
    ];

    //protected $guarded = ['admin'];
}

Voltar ao Índice


public function testes()
    {
        /*
         * UPDATE
        $prod = $this->product->find(5);
        $prod->name = 'Produto X1 Update';
        $prod->number = '2';
        $prod->active = true;
        $prod->category = 'eletronicos';
        $prod->description = 'Update Descição produto x1';
        $insert = $prod->save();
        if ($insert) {
            return "Update com sucesso";
        } else {
            return "Falha Update";
        }
        */

        /*
        $prod = $this->product->find(5);
        $update = $prod->update([
            'name' => 'UPDATE Nome Pro x3',
            'number' => '3',
            'active' => false,
            'category' => 'eletronicos',
            'description' => 'UP Desc x3',
        ]);
        if ($update) {
            return "Update com sucesso";
        } else {
            return "Falha Update";
        }
        */

        $prod = $this->product
                        ->where('number', '=', 333) // ('number', 333)
                        ->update([
                        'name' => 'UPDATE 2 Nome Pro x3',
                        'number' => '333',
                        'active' => false,
                        'category' => 'eletronicos',
                        'description' => 'UP 2 Desc x3',
        ]);
        if ($prod) {
            return "Update com sucesso";
        } else {
            return "Falha Update";
        }

    }

Voltar ao Índice


public function testes()
    {
        
        //$prod = $this->product->destroy(3);
        $prod = $this->product->destroy([3,4]);
        //$prod = $this->product->find(3);
        //$delete = $prod->delete();
//        if ($delete) {
//            return "Deletado com sucesso";
//        } else {
//            return "Falha Delete";
//        }

        $delete = $this->product->where('number', '333')->delete();
        if ($delete) {
            return "Deletado com sucesso";
        } else {
            return "Falha Delete";
        }
    }

Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


php artisan make:request ProductFormRequest

Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


Voltar ao Índice


About

ESPECIALIZATI - CURSO-DE-LARAVEL-53-BASICO

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published