Maison >développement back-end >tutoriel php >Opérations CURD dans Laravel 5.6 (exemples de code détaillés)
Dans cet article, je partagerai avec vous le module d'application de base crud (créer, lire, mettre à jour et supprimer) dans la version laravel 5.6. Vous pouvez suivre les étapes ci-dessous pour créer une application CRUD dans Laravel 5.6.
Laravel est un framework PHP MVC open source populaire avec de nombreuses fonctionnalités de développement avancées. Si vous êtes un apprenant ou un débutant dans l'application Laravel 5.6, il est toujours très utile d'en savoir plus ou d'apprendre l'application Crud. (Tutoriel vidéo Laravel associé : "Dernier didacticiel vidéo pratique de Laravel Mall")
Ci-dessous, je vais créer un exemple d'insertion, de mise à jour, de suppression et d'affichage ainsi qu'un exemple de pagination de produit. Il vous suffit de créer de nouveaux produits, d'afficher des produits, de modifier des produits et de supprimer des produits de la liste.
Étape 1 : Installer Laravel 5.6
Vous pouvez exécuter la commande create-project dans le terminal pour installer Laravel :
composer create-project --prefer-dist laravel/laravel blog
(Connexe recommandations : "Comment installer le framework Laravel via composer ? ")
Étape 2 : Configuration de la base de données
Après avoir terminé l'installation, nous installerons application laravel 5.6 crud pour la configuration de la base de données telle que le nom de la base de données, le nom d'utilisateur, le mot de passe, etc. Alors, ouvrons le fichier .env et remplissons les informations pertinentes comme suit :
.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)
Étape 3 : Créer une table de produits et un modèle
Nous créerons une application brute pour le produit. Nous devons donc créer les migrations de la table product à l'aide de la commande artisan php de Laravel 5.6, utilisez d'abord la commande suivante :
php artisan make:migration create_products_table --create=products
Après avoir exécuté cette commande, vous pouvez créer les migrations dans le chemin base de données/ migrations et le code suivant doit être placé dans le fichier migrations pour créer la table des produits.
<?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'); $table->text('detail'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('products'); } }
Étape 4 : Ajouter un itinéraire de ressources
Dans cette étape, nous devons ajouter un itinéraire de ressources pour l'application du produit brut. Alors ouvrez le fichier routes/web.php et ajoutez les routes suivantes.
routes/web.php
Route::resource('products','ProductController');
Étape 5 : Créer ProductController
Maintenant, nous devrions créer un nouveau contrôleur ProductController. Exécutez donc la commande suivante et créez un nouveau contrôleur. Le contrôleur suivant est utilisé pour créer le contrôleur de ressources.
Créer ProductController
php artisan make:controller ProductController --resource --model=Product
Après la commande suivante, vous trouverez le nouveau fichier dans ce chemin app/Http/Controllers/ProductController.php.
Dans ce contrôleur, 7 méthodes seront créées par défaut comme suit :
1)index()
2)create()
3) store()
4)show()
5)edit()
6)update()
7)destroy( )
Copions donc le code ci-dessous et mettons-le dans le fichier ProductController.php.
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('products.index',compact('products')) ->with('i', (request()->input('page', 1) - 1) * 5); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { return view('products.create'); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { request()->validate([ 'name' => 'required', 'detail' => 'required', ]); Product::create($request->all()); return redirect()->route('products.index') ->with('success','Product created successfully.'); } /** * Display the specified resource. * * @param \App\Product $product * @return \Illuminate\Http\Response */ public function show(Product $product) { return view('products.show',compact('product')); } /** * Show the form for editing the specified resource. * * @param \App\Product $product * @return \Illuminate\Http\Response */ public function edit(Product $product) { return view('products.edit',compact('product')); } /** * 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([ 'name' => 'required', 'detail' => 'required', ]); $product->update($request->all()); return redirect()->route('products.index') ->with('success','Product updated successfully'); } /** * Remove the specified resource from storage. * * @param \App\Product $product * @return \Illuminate\Http\Response */ public function destroy(Product $product) { $product->delete(); return redirect()->route('products.index') ->with('success','Product deleted successfully'); } }
OK, après avoir exécuté la commande suivante, vous trouverez app/Product.php et mettrez le contenu suivant dans Product.php Dans le fichier :
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 = [ 'name', 'detail' ]; }
Étape 6 : Créer un fichier Blade
Nous entrons maintenant dans l'étape finale. Dans cette étape, il nous suffit de créer le fichier lame. Nous devons donc principalement créer le fichier de mise en page, puis créer un nouveau dossier "products", puis créer le fichier blade de l'application crud. Enfin, vous devez créer les fichiers blade suivants :
1) layout.blade.php
2) index.blade.php
3) show.blade.php
4) form.blade.php
5) create.blade.php
6) edit.blade.php
Créons le fichier suivant et mettez Entrez le code ci-dessous.
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('content') </div> </body> </html>
resources/views/products/index.blade.php
@extends('products.layout') @section('content') <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('products.create') }}"> Create New Product</a> </div> </div> </div> @if ($message = Session::get('success')) <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('products.destroy',$product->id) }}" method="POST"> <a class="btn btn-info" href="{{ route('products.show',$product->id) }}">Show</a> <a class="btn btn-primary" href="{{ route('products.edit',$product->id) }}">Edit</a> @csrf @method('DELETE') <button type="submit" class="btn btn-danger">Delete</button> </form> </td> </tr> @endforeach </table> {!! $products->links() !!} @endsection
resources/views/ products/show.blade.php
@extends('products.layout') @section('content') <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('products.index') }}"> 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
resources/views/products/create.blade.php
@extends('products.layout') @section('content') <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('products.index') }}"> 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('products.store') }}" 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
resources/views/products/edit.blade.php
@extends('products.layout') @section('content') <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('products.index') }}"> 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('products.update',$product->id) }}" method="POST"> @csrf @method('PUT') <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
Maintenant, nous sommes prêts à exécuter notre exemple d'application crud, alors exécutez la commande suivante pour une exécution rapide :
php artisan serve
Enfin, vous pouvez ouvrir l'URL suivante sur votre navigateur pour voir le test :
http://localhost:8000/products
Cet article concerne les opérations CURD dans Laravel 5.6, c'est-à-dire les opérations de création, de lecture, de mise à jour et de suppression. J'espère qu'il sera utile aux amis dans le besoin !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!