Olá Pessoal!

Nesse tutorial, irei mostrar para vocês como editar e como excluir uma loja que cadastramos.

Criando a Edição de uma Loja

Primeiro vou ensinar a como fazer a edição de uma loja. Primeiro iremos criar um arquivo chamado edit.blade.php em src/Resources/views/admin e inserir o seguinte conteúdo:

@extends('admin::layouts.content')

@section('page_title')
    Editar Loja
@stop

@section('content')
    <div class="content">
        <form method="POST" action="{{ route('minhaslojas.admin.update', $loja->id) }}" @submit.prevent="onSubmit">
            <div class="page-header">
                <div class="page-title">
                    <h1>
                        Editar Loja
                    </h1>
                </div>

                <div class="page-action">
                    <button type="submit" class="btn btn-lg btn-primary">Save</button>
                </div>
            </div>

            <div class="page-content">
                <div class="form-container">
                    @csrf()
                    <div class="control-group" :class="[errors.has('nome') ? 'has-error' : '']">
                        <label for="nome" class="required">Nome</label>
                        <input type="text" class="control" name="nome" v-validate="'required'" value="{{ $loja->nome }}">
                    </div>

                    <div class="control-group" :class="[errors.has('endereco') ? 'has-error' : '']">
                        <label for="last_name" class="required">Endereço</label>
                        <input type="text" class="control" name="endereco" v-validate="'required'" value="{{ $loja->endereco }}">
                    </div>
                </div>
            </div>
        </form>
    </div>
@stop

Agora, precisaremos adicionar dois métodos no nosso controller. Para isso abra o arquivo src/Http/Controllers/Admin/MinhasLojasController, e adicione o seguinte código:

public function edit($id)
{
    $loja = Loja::find($id);
    return view('minhaslojas::admin.edit', compact('loja'));
}

public function update(Request $request, $id)
{
    $loja = Loja::find($id);

    $loja->nome = $request->nome;
    $loja->endereco = $request->endereco;
    $loja->save();

    return redirect(route('minhaslojas.admin.index'));
}

Com isso, o arquivo ficará dessa maneira:

<?php
namespace LuanCS\MinhasLojas\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use LuanCS\MinhasLojas\Models\Loja;

class MinhasLojasController extends Controller
{
    public function index()
    {
        return view('minhaslojas::admin.index');
    }
    public function create()
    {
        return view('minhaslojas::admin.create');
    }

    public function store(Request $request)
    {
        $loja = new Loja();
        $loja->nome = $request->nome;
        $loja->endereco = $request->endereco;
        $loja->save();
        return redirect(route('minhaslojas.admin.index'));
    }

    public function edit($id)
    {
        $loja = Loja::find($id);
        return view('minhaslojas::admin.edit', compact('loja'));
    }

    public function update(Request $request, $id)
    {
        $loja = Loja::find($id);

        $loja->nome = $request->nome;
        $loja->endereco = $request->endereco;
        $loja->save();

        return redirect(route('minhaslojas.admin.index'));
    }

    public function destroy($id)
    {

    }
}

Agora acesse o menu "Minhas Lojas", e clique no ícone de um lápis, para editar um registro. Com isso, a tela de edição irá aparecer, com os campos nome e endereço preenchidos, conforme demonstrado na imagem abaixo:

Agora altere os campos e clique em salvar, você voltará para a listagem e verá que os dados foram alterados com sucesso!!

Agora vamos para a exclusão de um Registro.

Excluindo uma Loja

Agora que já aprendemos, a criar, listar, editar, agora só falta excluir uma loja :)

Fazer isso é bem simples, abra o arquivo src/Http/Controllers/Admin/MinhasLojasController e adicione o seguinte código ao método destroy anteriormente criado:

$loja = Loja::find($id);
$loja->delete();
return redirect(route('minhaslojas.admin.index'));

Deixando o método da seguinte forma:

public function destroy($id)
{
    $loja = Loja::find($id);
    $loja->delete();
    return redirect(route('minhaslojas.admin.index'));
}

No final o Controller vai estar assim:

<?php
namespace LuanCS\MinhasLojas\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use LuanCS\MinhasLojas\Models\Loja;

class MinhasLojasController extends Controller
{
    public function index()
    {
        return view('minhaslojas::admin.index');
    }
    public function create()
    {
        return view('minhaslojas::admin.create');
    }

    public function store(Request $request)
    {
        $loja = new Loja();
        $loja->nome = $request->nome;
        $loja->endereco = $request->endereco;
        $loja->save();
        return redirect(route('minhaslojas.admin.index'));
    }

    public function edit($id)
    {
        $loja = Loja::find($id);
        return view('minhaslojas::admin.edit', compact('loja'));
    }

    public function update(Request $request, $id)
    {
        $loja = Loja::find($id);

        $loja->nome = $request->nome;
        $loja->endereco = $request->endereco;
        $loja->save();

        return redirect(route('minhaslojas.admin.index'));
    }

    public function destroy($id)
    {
        $loja = Loja::find($id);
        $loja->delete();
        return redirect(route('minhaslojas.admin.index'));
    }
}

Agora acesse o Menu "Minhas Lojas", e clique sobre o ícone de uma lixeira em um dos registros, ao fazer isso, o registro será excluído.

Com isso, encerro esse tutorial e com isso fechamos o CRUD :)

Espero que tenham gostado :D

Caso queiram baixar o módulo, acessem o repositório abaixo, na tag 3.0:

https://github.com/luancschmitz/modulo-bagisto-minhas-lojas/tree/3.0