초보자를 위한 Laravel 9 CRUD 예제 튜토리얼

이 Laravel 9 CRUD 작업과 초보자를 위한 예제 자습서를 통해 laravel 9에서 간단한 crud 작업 앱을 빌드하는 방법과 laravel crud에서 양식 데이터를 데이터베이스에 저장 및 업데이트하여 유효성을 검사하는 방법에 대한 단계별 가이드를 배우게 됩니다. 부트스트랩이 있는 앱.

CRUD 의미: CRUD는 컴퓨터 프로그래밍 세계에서 나온 약어이며 영구 저장 응용 프로그램을 구현하는 데 필요한 것으로 간주되는 네 가지 기능인 만들기, 읽기, 업데이트 및 삭제를 나타냅니다.

이 laravel 9 crud 작업 단계별 튜토리얼은 처음부터 laravel 앱에서 유효성 검사 및 이미지 업로드를 통해 간단한 post crud 작업 앱을 구현합니다. 이 crud 앱을 사용하여 laravel 9 프로젝트의 데이터베이스에서 데이터를 삽입, 읽기, 업데이트 및 삭제하는 방법을 배울 수 있습니다.

초보자를 위한 Laravel 9 CRUD 예제 튜토리얼



다음 단계를 사용하여 laravel 9에서 crud 작업 앱을 다음과 같이 만듭니다.
  • 1단계 – Laravel 9 앱 다운로드
  • 2단계 - 앱으로 데이터베이스 설정
  • 3단계 – CRUD 앱에 대한 회사 모델 및 마이그레이션 생성
  • 4단계 – Artisan Command로 Company Controller 만들기
  • 5단계 – 경로 만들기
  • 6단계 – 블레이드 보기 파일 만들기
  • 디렉토리 이름 회사 만들기
  • index.blade.php
  • create.blade.php
  • edit.blade.php

  • 7단계 – 개발 서버에서 Laravel CRUD 앱 실행

  • 1단계 – Laravel 9 앱 다운로드



    우선 laravel 9 새 설정을 다운로드하거나 설치하십시오. 따라서 터미널을 열고 다음 명령을 입력하여 새 laravel 9 앱을 컴퓨터에 설치하십시오.

    composer create-project --prefer-dist laravel/laravel:^9.0 laravel-9-crud
    


    2단계 – 앱으로 데이터베이스 설정



    다운로드/설치된 laravel 앱으로 데이터베이스를 설정합니다. 따라서 다음과 같이 .env 파일을 찾고 데이터베이스 세부 정보를 설정해야 합니다.

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=database-name
    DB_USERNAME=database-user-name
    DB_PASSWORD=database-password
    


    3단계 – 회사 모델 생성 및 CRUD 앱 마이그레이션



    명령 프롬프트를 다시 엽니다. 그리고 그것에 다음 명령을 실행하십시오. 양식에 대한 모델 및 마이그레이션 파일을 생성하려면:

    php artisan make:model Company -m
    


    그런 다음 laravel-9-crud/database/migrations/디렉토리에서 회사 마이그레이션 파일을 엽니다. 그런 다음 up() 함수를 다음 코드로 업데이트합니다.

    public function up()
    {
        Schema::create('companies', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email');
            $table->string('address');
            $table->timestamps();
        });
    }
    


    앱/모델/Company.php

    <?php
    
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Database\Eloquent\Model;
    
    class Company extends Model
    {
        use HasFactory;
    
        protected $fillable = ['name', 'email', 'address'];
    }
    


    그런 다음 명령 프롬프트를 다시 열고 다음 명령을 실행하여 데이터베이스에 테이블을 만듭니다.

    php artisan migrate
    


    추가 읽기: How to set up Free self-hosted Email marketing with Mautic (60k Emails per month!)

    4단계 – Artisan Command로 Company Controller 생성



    명령 프롬프트에서 다음 명령을 사용하여 컨트롤러 파일을 생성하여 컨트롤러를 생성합니다.

    php artisan make:controller CompanyController
    


    그런 다음 app/Http/controllers를 방문하여 CompanyController.php 파일을 엽니다. 그리고 다음 코드를 업데이트하십시오.

    <?php
    
    namespace App\Http\Controllers;
    use App\Models\Company;
    use Illuminate\Http\Request;
    
    class CompanyController extends Controller
    {
        /**
        * Display a listing of the resource.
        *
        * @return \Illuminate\Http\Response
        */
        public function index()
        {
            $companies = Company::orderBy('id','desc')->paginate(5);
            return view('companies.index', compact('companies'));
        }
    
        /**
        * Show the form for creating a new resource.
        *
        * @return \Illuminate\Http\Response
        */
        public function create()
        {
            return view('companies.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',
                'email' => 'required',
                'address' => 'required',
            ]);
    
            Company::create($request->post());
    
            return redirect()->route('companies.index')->with('success','Company has been created successfully.');
        }
    
        /**
        * Display the specified resource.
        *
        * @param  \App\company  $company
        * @return \Illuminate\Http\Response
        */
        public function show(Company $company)
        {
            return view('companies.show',compact('company'));
        }
    
        /**
        * Show the form for editing the specified resource.
        *
        * @param  \App\Company  $company
        * @return \Illuminate\Http\Response
        */
        public function edit(Company $company)
        {
            return view('companies.edit',compact('company'));
        }
    
        /**
        * Update the specified resource in storage.
        *
        * @param  \Illuminate\Http\Request  $request
        * @param  \App\company  $company
        * @return \Illuminate\Http\Response
        */
        public function update(Request $request, Company $company)
        {
            $request->validate([
                'name' => 'required',
                'email' => 'required',
                'address' => 'required',
            ]);
    
            $company->fill($request->post())->save();
    
            return redirect()->route('companies.index')->with('success','Company Has Been updated successfully');
        }
    
        /**
        * Remove the specified resource from storage.
        *
        * @param  \App\Company  $company
        * @return \Illuminate\Http\Response
        */
        public function destroy(Company $company)
        {
            $company->delete();
            return redirect()->route('companies.index')->with('success','Company has been deleted successfully');
        }
    }
    


    5단계 – 경로 생성



    그런 다음 laravel crud 앱에 대한 경로를 만듭니다. 따라서 laravel CRUD 앱의 경로 디렉토리에서 web.php 파일을 여십시오. 그리고 다음 경로를 web.php 파일로 업데이트합니다.

    use App\Http\Controllers\ComapnyController;
    
    Route::resource('companies', ComapnyController::class);
    
    


    6단계 – Blade Views 파일 생성



    디렉토리와 일부 블레이드 보기를 생성하고 다음을 참조하십시오.
  • 디렉토리 이름 회사 만들기
  • index.blade.php
  • create.blade.php
  • edit.blade.php

  • resources/views 디렉토리 내에 디렉토리 이름 회사를 만듭니다.

    회사 디렉토리 내에 index.blade.php, create.blade.php 및 edit.blade.php를 생성하십시오. 그리고 다음 코드를 다음 파일로 업데이트합니다.

    index.blade.php:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Laravel 9 CRUD Tutorial Example</title>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" >
    </head>
    <body>
        <div class="container mt-2">
            <div class="row">
                <div class="col-lg-12 margin-tb">
                    <div class="pull-left">
                        <h2>Laravel 9 CRUD Example Tutorial</h2>
                    </div>
                    <div class="pull-right mb-2">
                        <a class="btn btn-success" href="{{ route('companies.create') }}"> Create Company</a>
                    </div>
                </div>
            </div>
            @if ($message = Session::get('success'))
                <div class="alert alert-success">
                    <p>{{ $message }}</p>
                </div>
            @endif
            <table class="table table-bordered">
                <thead>
                    <tr>
                        <th>S.No</th>
                        <th>Company Name</th>
                        <th>Company Email</th>
                        <th>Company Address</th>
                        <th width="280px">Action</th>
                    </tr>
                </thead>
                <tbody>
                    @foreach ($companies as $company)
                        <tr>
                            <td>{{ $company->id }}</td>
                            <td>{{ $company->name }}</td>
                            <td>{{ $company->email }}</td>
                            <td>{{ $company->address }}</td>
                            <td>
                                <form action="{{ route('companies.destroy',$company->id) }}" method="Post">
                                    <a class="btn btn-primary" href="{{ route('companies.edit',$company->id) }}">Edit</a>
                                    @csrf
                                    @method('DELETE')
                                    <button type="submit" class="btn btn-danger">Delete</button>
                                </form>
                            </td>
                        </tr>
                        @endforeach
                </tbody>
            </table>
            {!! $companies->links() !!}
        </div>
    </body>
    </html>
    


    create.blade.php:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>Add Company Form - Laravel 9 CRUD</title>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    </head>
    
    <body>
        <div class="container mt-2">
            <div class="row">
                <div class="col-lg-12 margin-tb">
                    <div class="pull-left mb-2">
                        <h2>Add Company</h2>
                    </div>
                    <div class="pull-right">
                        <a class="btn btn-primary" href="{{ route('companies.index') }}"> Back</a>
                    </div>
                </div>
            </div>
            @if(session('status'))
            <div class="alert alert-success mb-1 mt-1">
                {{ session('status') }}
            </div>
            @endif
            <form action="{{ route('companies.store') }}" method="POST" enctype="multipart/form-data">
                @csrf
                <div class="row">
                    <div class="col-xs-12 col-sm-12 col-md-12">
                        <div class="form-group">
                            <strong>Company Name:</strong>
                            <input type="text" name="name" class="form-control" placeholder="Company Name">
                            @error('name')
                            <div class="alert alert-danger mt-1 mb-1">{{ $message }}</div>
                            @enderror
                        </div>
                    </div>
                    <div class="col-xs-12 col-sm-12 col-md-12">
                        <div class="form-group">
                            <strong>Company Email:</strong>
                            <input type="email" name="email" class="form-control" placeholder="Company Email">
                            @error('email')
                            <div class="alert alert-danger mt-1 mb-1">{{ $message }}</div>
                            @enderror
                        </div>
                    </div>
                    <div class="col-xs-12 col-sm-12 col-md-12">
                        <div class="form-group">
                            <strong>Company Address:</strong>
                            <input type="text" name="address" class="form-control" placeholder="Company Address">
                            @error('address')
                            <div class="alert alert-danger mt-1 mb-1">{{ $message }}</div>
                            @enderror
                        </div>
                    </div>
                    <button type="submit" class="btn btn-primary ml-3">Submit</button>
                </div>
            </form>
        </div>
    </body>
    
    </html>
    


    edit.blade.php:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>Edit Company Form - Laravel 9 CRUD Tutorial</title>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    </head>
    
    <body>
        <div class="container mt-2">
            <div class="row">
                <div class="col-lg-12 margin-tb">
                    <div class="pull-left">
                        <h2>Edit Company</h2>
                    </div>
                    <div class="pull-right">
                        <a class="btn btn-primary" href="{{ route('companies.index') }}" enctype="multipart/form-data">
                            Back</a>
                    </div>
                </div>
            </div>
            @if(session('status'))
            <div class="alert alert-success mb-1 mt-1">
                {{ session('status') }}
            </div>
            @endif
            <form action="{{ route('companies.update',$company->id) }}" method="POST" enctype="multipart/form-data">
                @csrf
                @method('PUT')
                <div class="row">
                    <div class="col-xs-12 col-sm-12 col-md-12">
                        <div class="form-group">
                            <strong>Company Name:</strong>
                            <input type="text" name="name" value="{{ $company->name }}" class="form-control"
                                placeholder="Company name">
                            @error('name')
                            <div class="alert alert-danger mt-1 mb-1">{{ $message }}</div>
                            @enderror
                        </div>
                    </div>
                    <div class="col-xs-12 col-sm-12 col-md-12">
                        <div class="form-group">
                            <strong>Company Email:</strong>
                            <input type="email" name="email" class="form-control" placeholder="Company Email"
                                value="{{ $company->email }}">
                            @error('email')
                            <div class="alert alert-danger mt-1 mb-1">{{ $message }}</div>
                            @enderror
                        </div>
                    </div>
                    <div class="col-xs-12 col-sm-12 col-md-12">
                        <div class="form-group">
                            <strong>Company Address:</strong>
                            <input type="text" name="address" value="{{ $company->address }}" class="form-control"
                                placeholder="Company Address">
                            @error('address')
                            <div class="alert alert-danger mt-1 mb-1">{{ $message }}</div>
                            @enderror
                        </div>
                    </div>
                    <button type="submit" class="btn btn-primary ml-3">Submit</button>
                </div>
            </form>
        </div>
    </body>
    
    </html>
    


    추가 또는 편집 양식을 제출하는 경우 공백입니다. 따라서 오류 메시지는 아래 제공된 코드의 도움으로 표시됩니다.

    @error('name')
        <div class="alert alert-danger mt-1 mb-1">{{ $message }}</div>
    @enderror
    


    7단계 – 개발 서버 실행



    마지막 단계에서 명령 프롬프트를 열고 다음 명령을 실행하여 개발 서버를 시작합니다.

    php artisan serve
    


    그런 다음 브라우저를 열고 다음 URL을 누르십시오.

    http://127.0.0.1:8000/companies
    


    이 블로그를 읽어주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기