이 기사에서는 laravel 5.6 버전의 기본 crud (생성, 읽기, 업데이트 및 삭제) 응용 프로그램 모듈을 공유하겠습니다. 아래 단계에 따라 laravel 5.6에서 CRUD 애플리케이션을 만들 수 있습니다.
Laravel은 다양한 고급 개발 기능을 갖춘 인기 있는 오픈 소스 PHP MVC 프레임워크입니다. laravel 5.6 애플리케이션의 학습자이거나 초보자라면 crud 애플리케이션에 대해 더 많이 알고 배우는 것이 항상 많은 도움이 됩니다. (관련 라라벨 영상 튜토리얼: "Latest Laravel Mall 실용 영상 튜토리얼")
아래에서는 삽입, 업데이트, 삭제, 보기 및 제품 페이징 예제를 작성하겠습니다. 새 제품을 만들고, 제품을 보고, 제품을 편집하고, 목록에서 제품을 제거하면 됩니다.
1단계: Laravel 5.6 설치
Laravel을 설치하려면 터미널에서 create-project 명령을 실행할 수 있습니다.
composer create-project --prefer-dist laravel/laravel blog
(관련 권장 사항: "작곡기를 통해 Laravel 프레임워크를 설치하는 방법?")
두 번째 단계: 데이터베이스 구성
설치가 완료된 후 데이터베이스 이름, 사용자 이름, 비밀번호 등 laravel 5.6의 crud 애플리케이션에 대한 데이터베이스를 구성합니다. 이제 .env 파일을 열고 다음과 같이 관련 정보를 입력해 보겠습니다.
.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)
3단계: 제품 테이블 및 모델 생성
제품에 대한 crud 애플리케이션을 생성합니다. 따라서 Laravel 5.6 php artisan 명령을 사용하여 제품 테이블의 마이그레이션을 생성해야 합니다. 먼저 다음 명령을 사용하십시오:
php artisan make:migration create_products_table --create=products
이 명령을 실행한 후 database/migrations 경로에서 파일을 찾을 수 있으며 다음 코드는 제품 테이블을 생성하기 위해 마이그레이션 파일에 배치됩니다.
<?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'); } }
4단계: 리소스 경로 추가
이 단계에서는 제품 크루드 적용을 위한 리소스 경로를 추가해야 합니다. Routes/web.php 파일을 열고 다음 경로를 추가하십시오.
routes/web.php
Route::resource('products','ProductController');
5단계: ProductController 만들기
이제 새 컨트롤러 ProductController를 만들어야 합니다. 따라서 다음 명령을 실행하고 새 컨트롤러를 생성하십시오. 다음 컨트롤러는 리소스 컨트롤러를 만드는 데 사용됩니다.
Create ProductController
php artisan make:controller ProductController --resource --model=Product
다음 명령을 실행하면 app/Http/Controllers/ProductController.php 경로에서 새 파일을 찾을 수 있습니다.
이 컨트롤러에는 기본적으로 다음과 같이 7가지 메서드가 생성됩니다.
1)index()
2)create()
3)store()
4)show()
5)edit( )
6)update()
7)destroy()
그럼 아래 코드를 복사해서 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'); } }
좋아, 다음 명령을 실행하면 app/Product.php를 찾고 다음 내용을 Product.php 파일에 넣을 수 있습니다:
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' ]; }
6단계: 블레이드 파일 생성
이제 마지막 단계로 이동합니다. 이 단계에서는 블레이드 파일을 생성하기만 하면 됩니다. 따라서 우리는 주로 레이아웃 파일을 생성한 다음 새 폴더 "products"를 생성하고 crud 앱의 블레이드 파일을 생성해야 합니다. 마지막으로 다음 블레이드 파일을 생성해야 합니다.
1)layout.blade.php
2)index.blade.php
3)show.blade.php
4)form.blade.php
5 ) create.blade .php
6) edit.blade.php
다음 파일을 생성하고 다음 코드를 넣어보겠습니다.
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
이제 crud 애플리케이션 예제를 실행할 준비가 되었으므로 다음 명령을 실행하여 빠르게 실행하세요.
php artisan serve
마지막으로 다음 명령을 실행하세요. 보고 테스트하려면 브라우저에서 다음 URL을 열 수 있습니다.
http://localhost:8000/products
이 기사는 Laravel 5.6의 CURD 작업, 즉 생성, 읽기, 업데이트 및 삭제 작업에 대한 내용입니다. 도움이 필요한 친구들에게 도움이 되기를 바랍니다. !
위 내용은 Laravel 5.6의 CURD 작업(자세한 코드 예제)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!