CURD-Operationen in Laravel 5.6 (detaillierte Codebeispiele)

藏色散人
Freigeben: 2023-04-05 12:50:01
Original
3776 Leute haben es durchsucht






In diesem Artikel werde ich das grundlegende Anwendungsmodul (Erstellen, Lesen, Aktualisieren und Löschen) in Laravel 5.6 mit Ihnen teilen. Sie können die folgenden Schritte ausführen, um eine CRUD-Anwendung in Laravel 5.6 zu erstellen.

CURD-Operationen in Laravel 5.6 (detaillierte Codebeispiele)

Laravel ist ein beliebtes Open-Source-PHP-MVC-Framework mit vielen erweiterten Entwicklungsfunktionen. Wenn Sie ein Anfänger oder Anfänger in der Anwendung von Laravel 5.6 sind, ist es immer hilfreich, mehr über die Anwendung von Rohöl zu wissen oder diese zu erlernen. (Verwandtes Laravel-Video-Tutorial: „Neuestes praktisches Laravel Mall-Video-Tutorial“)

Unten werde ich ein Beispiel für das Einfügen, Aktualisieren, Löschen und Anzeigen sowie für die Produktpaginierung erstellen. Sie erstellen einfach neue Produkte, sehen sich Produkte an, bearbeiten Produkte und entfernen Produkte aus der Liste.

Schritt 1: Laravel 5.6 installieren

Sie können den Befehl „create-project“ im Terminal ausführen, um Laravel zu installieren:

composer create-project --prefer-dist laravel/laravel blog
Nach dem Login kopieren

(Verwandte Empfehlungen: " Wie installiere ich das Laravel-Framework über Composer? 》)

Schritt 2: Datenbankkonfiguration

Nach Abschluss der Installation stellen wir das Rohmaterial zur Verfügung für Laravel 5.6 Die Anwendung führt Datenbankkonfigurationen wie Datenbankname, Benutzername, Passwort usw. durch. Öffnen wir also die .env-Datei und geben die relevanten Informationen wie folgt ein:

.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name(blog)
DB_USERNAME=here database username(root)
DB_PASSWORD=here database password(root)
Nach dem Login kopieren

Schritt 3: Produkttabelle und Modell erstellen

Wir erstellen eine Rohanwendung für das Produkt. Wir müssen also die Migrationen der Produkttabelle mit dem PHP-Artisan-Befehl von Laravel 5.6 erstellen. Verwenden Sie zunächst den folgenden Befehl:

php artisan make:migration create_products_table --create=products
Nach dem Login kopieren

Nachdem Sie diesen Befehl ausgeführt haben, können Sie die Migrationen im Pfad database/migrations< erstellen 🎜> Eine Datei wurde gefunden und der folgende Code muss in die Migrationsdatei eingefügt werden, um die Produkttabelle zu erstellen.

<?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(&#39;products&#39;, function (Blueprint $table) {
            $table->increments(&#39;id&#39;);
            $table->string(&#39;name&#39;);
            $table->text(&#39;detail&#39;);
            $table->timestamps();
        });
    }


    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists(&#39;products&#39;);
    }
}
Nach dem Login kopieren

Schritt 4: Ressourcenroute hinzufügen

In diesem Schritt müssen wir eine Ressourcenroute für die Produktrohstoffanwendung hinzufügen. Öffnen Sie also die Datei „routes/web.php“ und fügen Sie die folgenden Routen hinzu.

routes/web.php

Route::resource(&#39;products&#39;,&#39;ProductController&#39;);
Nach dem Login kopieren

Schritt 5: ProductController erstellen

Jetzt sollten wir einen neuen Controller ProductController erstellen. Führen Sie also den folgenden Befehl aus und erstellen Sie einen neuen Controller. Der folgende Controller wird zum Erstellen des Ressourcencontrollers verwendet.

ProductController erstellen

php artisan make:controller ProductController --resource --model=Product
Nach dem Login kopieren

Nach dem folgenden Befehl finden Sie die neue Datei in diesem Pfad app/Http/Controllers/ProductController.php.

In diesem Controller werden standardmäßig 7 Methoden wie folgt erstellt:

1)index()

2)create()

3) store()

4)show()

5)edit()

6)update()

7)destroy( )

Kopieren wir also den Code unten und fügen ihn in die Datei ProductController.php ein.

app/Http/Controllers/ProductController.php

<?php

namespace App\Http\Controllers;

use App\Product;
use Illuminate\Http\Request;

class ProductController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $products = Product::latest()->paginate(5);

        return view(&#39;products.index&#39;,compact(&#39;products&#39;))
            ->with(&#39;i&#39;, (request()->input(&#39;page&#39;, 1) - 1) * 5);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view(&#39;products.create&#39;);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        request()->validate([
            &#39;name&#39; => &#39;required&#39;,
            &#39;detail&#39; => &#39;required&#39;,
        ]);

        Product::create($request->all());

        return redirect()->route(&#39;products.index&#39;)
                        ->with(&#39;success&#39;,&#39;Product created successfully.&#39;);
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function show(Product $product)
    {
        return view(&#39;products.show&#39;,compact(&#39;product&#39;));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function edit(Product $product)
    {
        return view(&#39;products.edit&#39;,compact(&#39;product&#39;));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Product $product)
    {
         request()->validate([
            &#39;name&#39; => &#39;required&#39;,
            &#39;detail&#39; => &#39;required&#39;,
        ]);

        $product->update($request->all());

        return redirect()->route(&#39;products.index&#39;)
                        ->with(&#39;success&#39;,&#39;Product updated successfully&#39;);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function destroy(Product $product)
    {
        $product->delete();

        return redirect()->route(&#39;products.index&#39;)
                        ->with(&#39;success&#39;,&#39;Product deleted successfully&#39;);
    }
}
Nach dem Login kopieren

OK, nachdem Sie den folgenden Befehl ausgeführt haben, finden Sie app/Product.php und fügen den folgenden Inhalt in die Datei Product.php ein:

app/Product.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        &#39;name&#39;, &#39;detail&#39;
    ];
}
Nach dem Login kopieren

Schritt 6: Erstellen Sie die Blade-Datei

Jetzt betreten wir den letzten Schritt. In diesem Schritt müssen wir nur die Blade-Datei erstellen. Wir müssen also hauptsächlich die Layoutdatei erstellen, dann einen neuen Ordner „Produkte“ erstellen und dann die Blade-Datei der Roh-App erstellen. Abschließend müssen Sie die folgenden Blade-Dateien erstellen:

1) layout.blade.php

2) index.blade.php

3) show.blade.php

4) form.blade.php

5) create.blade.php

6) edit.blade.php

Lassen Sie uns Folgendes erstellen Datei und geben Sie den folgenden Code ein.

resources/views/products/layout.blade.php

<!DOCTYPE html>
<html>
<head>
	<title>Laravel 5.6 CRUD Application</title>
	<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet">
</head>
<body>

<div class="container">
    @yield(&#39;content&#39;)
</div>

</body>
</html>
Nach dem Login kopieren

resources/views/products/index.blade.php

@extends(&#39;products.layout&#39;)

@section(&#39;content&#39;)
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>Laravel 5.6 CRUD Example from scratch</h2>
            </div>
            <div class="pull-right">
                <a class="btn btn-success" href="{{ route(&#39;products.create&#39;) }}"> Create New Product</a>
            </div>
        </div>
    </div>

    @if ($message = Session::get(&#39;success&#39;))
        <div class="alert alert-success">
            <p>{{ $message }}</p>
        </div>
    @endif

    <table class="table table-bordered">
        <tr>
            <th>No</th>
            <th>Name</th>
            <th>Details</th>
            <th width="280px">Action</th>
        </tr>
        @foreach ($products as $product)
        <tr>
            <td>{{ ++$i }}</td>
            <td>{{ $product->name }}</td>
            <td>{{ $product->detail }}</td>
            <td>
                <form action="{{ route(&#39;products.destroy&#39;,$product->id) }}" method="POST">

                    <a class="btn btn-info" href="{{ route(&#39;products.show&#39;,$product->id) }}">Show</a>
                    <a class="btn btn-primary" href="{{ route(&#39;products.edit&#39;,$product->id) }}">Edit</a>

                    @csrf
                    @method(&#39;DELETE&#39;)

   
                    <button type="submit" class="btn btn-danger">Delete</button>
                </form>
            </td>
        </tr>
        @endforeach
    </table>

    {!! $products->links() !!}

@endsection
Nach dem Login kopieren

resources/views/products/show. blade.php

@extends(&#39;products.layout&#39;)

@section(&#39;content&#39;)
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2> Show Product</h2>
            </div>
            <div class="pull-right">
                <a class="btn btn-primary" href="{{ route(&#39;products.index&#39;) }}"> Back</a>
            </div>
        </div>
    </div>

    <div class="row">
        <div class="col-xs-12 col-sm-12 col-md-12">
            <div class="form-group">
                <strong>Name:</strong>
                {{ $product->name }}
            </div>
        </div>
        <div class="col-xs-12 col-sm-12 col-md-12">
            <div class="form-group">
                <strong>Details:</strong>
                {{ $product->detail }}
            </div>
        </div>
    </div>
@endsection
Nach dem Login kopieren

resources/views/products/create.blade.php

@extends(&#39;products.layout&#39;)

@section(&#39;content&#39;)
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>Add New Product</h2>
            </div>
            <div class="pull-right">
                <a class="btn btn-primary" href="{{ route(&#39;products.index&#39;) }}"> Back</a>
            </div>
        </div>
    </div>

    @if ($errors->any())
        <div class="alert alert-danger">
            <strong>Whoops!</strong> There were some problems with your input.<br><br>
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif

    <form action="{{ route(&#39;products.store&#39;) }}" method="POST">
        @csrf

         <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="form-group">
                    <strong>Name:</strong>
                    <input type="text" name="name" class="form-control" placeholder="Name">
                </div>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="form-group">
                    <strong>Detail:</strong>
                    <textarea class="form-control" style="height:150px" name="detail" placeholder="Detail"></textarea>
                </div>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12 text-center">
                    <button type="submit" class="btn btn-primary">Submit</button>
            </div>
        </div>

    </form>

@endsection
Nach dem Login kopieren

resources/views/products/edit.blade.php

@extends(&#39;products.layout&#39;)

@section(&#39;content&#39;)
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>Edit Product</h2>
            </div>
            <div class="pull-right">
                <a class="btn btn-primary" href="{{ route(&#39;products.index&#39;) }}"> Back</a>
            </div>
        </div>
    </div>

    @if ($errors->any())
        <div class="alert alert-danger">
            <strong>Whoops!</strong> There were some problems with your input.<br><br>
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif

    <form action="{{ route(&#39;products.update&#39;,$product->id) }}" method="POST">
        @csrf
        @method(&#39;PUT&#39;)

         <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="form-group">
                    <strong>Name:</strong>
                    <input type="text" name="name" value="{{ $product->name }}" class="form-control" placeholder="Name">
                </div>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="form-group">
                    <strong>Detail:</strong>
                    <textarea class="form-control" style="height:150px" name="detail" placeholder="Detail">{{ $product->detail }}</textarea>
                </div>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12 text-center">
              <button type="submit" class="btn btn-primary">Submit</button>
            </div>
        </div>

    </form>

@endsection
Nach dem Login kopieren

Jetzt sind wir da Bereit Führen Sie unser grobes Anwendungsbeispiel aus, also führen Sie den folgenden Befehl aus, um ihn schnell auszuführen:

php artisan serve
Nach dem Login kopieren

Schließlich können Sie die folgende URL in Ihrem Browser öffnen, um den Test anzuzeigen:

http://localhost:8000/products
Nach dem Login kopieren
Das war’s für diesen Artikel Ich hoffe, dass die CURD-Operationen in Laravel 5.6, nämlich Erstellungs-, Lese-, Aktualisierungs- und Löschoperationen, Freunden in Not helfen werden!






Das obige ist der detaillierte Inhalt vonCURD-Operationen in Laravel 5.6 (detaillierte Codebeispiele). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!