2. 테이블에 값을 저장,읽고,수정,삭제 할수 있는 파일을 생성
$> php artisan make:controller TestCRUDController –resource
Controller created successfully.
– 확인
$> cd /app/Http/Controllers
TestCRUDController.php
<?php
namespaceApp\Http\Controllers;
use Illuminate\Http\Request;
classTestCRUDControllerextendsController
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
publicfunctionindex()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
publicfunctioncreate()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
publicfunctionstore(Request$request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
publicfunctionshow($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
publicfunctionedit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
publicfunctionupdate(Request$request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
publicfunctiondestroy($id)
{
//
}
}
– 위 생성된 파일의 상단에 model namespace 를 import 시킨다.
<?php
namespaceApp\Http\Controllers;
use Illuminate\Http\Request;
use App\TestCRUD;
classTestCRUDControllerextendsController
{
/**
– 편집 : 웹에 출력되는 화면을 아래와 같이 정의한다
$> cd /routes
web.php
<?php
/*
|————————————————————————–
| Web Routes
|————————————————————————–
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the “web” middleware group. Now create something great!
|
*/
Route::get(‘/’, function () {
returnview(‘welcome’);
});
위 내용을 아래와 같이 편집 한다.
<?php
/*
|————————————————————————–
| Web Routes
|————————————————————————–
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the “web” middleware group. Now create something great!
|
*/
Route::get(‘/’, function () {
returnview(‘welcome’);
});
Route::resource(‘test_crud’, ‘TestCRUDController’);
– 확인 : 웹 브라우져에서 아래와 같이 실행해본다 ( http://도메인/test_crud )

– Bootstrap and Vue 사용을 위해 아래 명령을 실행
$> composer require laravel/ui –dev
Using version ^1.1 for laravel/ui
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
– Installing laravel/ui (v1.1.2): Loading from cache
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover –ansi
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: laravel/ui
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
– 아래 명령을 통해 vue 와 react 를 Frontend 화면에서 사용 할수있도록 한다.
> vue , react 의 일반적인 사용시
$> php artisan ui vue
$> php artisan ui react
> vue , react 의 로그인과 회원가입 사용시
$> php artisan ui vue –auth
$> php artisan ui react –auth
( 참조 : 내 경우에는 위 4가지 명령을 모두 실행 시킴 )
– blade 파일을 생성
$> cd /resources/views
생성 파일 – layout.blade.php
<!DOCTYPEhtml>
<htmllang=”en”>
<head>
<metacharset=”UTF-8″>
<metaname=”viewport”content=”width=device-width, initial-scale=1.0″>
<metahttp-equiv=”X-UA-Compatible”content=”ie=edge”>
<title>Laravel 6 CRUD 기본 sample</title>
<linkhref=”{{ asset(‘css/app.css’) }}”rel=”stylesheet”type=”text/css”/>
</head>
<body>
<divclass=”container”>
@yield(‘content’)
</div>
<scriptsrc=”{{ asset(‘js/app.js’) }}”type=”text/js”></script>
</body>
</html>
해당 폴더(/resources/views )에 “test_view” 라는 폴더를 생성한다.
이후 test_view 폴더 속에
생성 파일 – insertform.blade.php
@extends(‘layout’)
@section(‘content’)
<style>
.uper {
margin-top: 40px;
}
</style>
<divclass=”card uper”>
<divclass=”card-header”>
<h1>Insert form test crud</h1>
</div>
<divclass=”card-body”>
@if ($errors->any())
<divclass=”alert alert-danger”>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div><br/>
@endif
<formmethod=”post”action=”{{ route(‘test_crud.store’) }}”>
<divclass=”form-group”>
@csrf
<labelfor=”title”>Title :</label>
<inputtype=”text”class=”form-control”name=”title”/>
</div>
<divclass=”form-group”>
<labelfor=”description”>Description :</label>
<textareaclass=”form-control”aria-label=”With textarea”name=”description”></textarea>
</div>
<buttontype=”submit”class=”btn btn-primary”>INSERT</button>
</form>
</div>
</div>
@endsection
– 컨트롤 파일(TestCRUDController) 편집 아래 참조
publicfunctioncreate()
{
returnview(‘test_view.insertform’);
}
– 확인 : 웹브라우져에서 실행 ( http://도메인/test_crud/create )

– 등록 DB 의 테이블에 값을 저장시 확인 ( 편집 파일 : TestCRUDController )
publicfunctionstore(Request$request)
{
$validatedData = $request->validate([
‘title’ => ‘required|max:100’,
‘description’ => ‘required’,
]);
$test = TestCRUD::create($validatedData);
returnredirect(‘/test_crud’)->with(‘success’, ‘test is successfully saved’);
}
– 입력을 하지 않고 “INSERT” 버튼 눌러 실행하면 아래와 같이 됨

– 위 form 값을 정상적으로 넣고 실행시키면 아래와 같이 DB 의 테이블 결과를 얻을수 있음
