【保存版】laravel-mysql-migration-model-controller-views-route

Laravel laravel

##################################################
# 1. mysqlで table=”jobs” を作成
##################################################


##################################################
# 2.table=”jobs” に 下記データをinsertするsqlを作成
##################################################

-title= 仕事内容1
-subtitle=書類の作成・処理

-detail=事務職が担当する最も代表的な仕事は、「書類の作成・処理」です。会社の経営には、さまざまな書類が必要になります。営業に関するものであれば見積書、請求書、納品書などが挙げられますし、法務関連では契約書や覚書がその代表例。経理関連では、経費の精算や決算に係る伝票・書類が、人事・総務に関するものでは給与明細、税金、社会保険関連の書類などが挙げられます。会社で使用する書類の作成・処理を一手に引き受けているのが事務職といってもいいでしょう。

-以下 同様のパターンでinsert

-仕事内容2
-書類のファイリング・整理

-作成した書類は、あとで確認できるように保存しておく必要があります。それが「書類のファイリング・整理」という仕事。これも事務職の重要な仕事です。紙で印刷された書類は、種類、日付などで分類し、バインダーなどにファイリング。所定の場所に収めていきます。パソコンで作成されたファイルなら、書類の種類や作成日などに応じて、フォルダを作成して保存。誰でも必要なファイルにすぐにアクセスできる状況を維持します。

-仕事内容3
-データ入力

-パソコンを使った「データ入力」も事務職が担当する主な仕事のひとつです。扱うデータは会社や部署によってさまざまで、売上や商品の在庫・発送に関するデータ、お客様の住所やそのお客様が購入した商品の個数・価格といったデータが代表的な例です。さらには社員の勤怠、個人情報などの入力にも携わることがあります。

-仕事内容4
-電話・来客応対

-営業職や企画職の人たちは、外出や会議への出席などが多いため、自分の席にいないことが多々あります。担当者の離席中に電話や来客があったときに、代わりに用件を聞いたり、打ち合わせスペースや会議室へと案内したりするのも、多く場合は事務職の仕事です。また、会社の代表番号が事務職につながっているケースも少なくありません。さまざまな問い合わせを担当部署に振り分ける役割を担うこともあります。

-仕事内容5
-その他

-その他にも、「郵便物の発送・仕分け」も、多くの会社で事務職の仕事となっています。会社が扱う郵便物の中には、契約書、請求書などといった、重要かつ締切りが設定された書類がたくさんあります。こういった書類が、お客様と自社の担当者の間でスムーズにやり取りされるのも、実は事務職のおかげです。また、会社や部署によっては、備品の発注・管理、会議やイベントの運営などを行うこともあるでしょう。

<!– 作成されたコード –>
# jobsテーブルを作成するsql

CREATE TABLE IF NOT EXISTS `jobs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`subtitle` varchar(255) NOT NULL,
`detail` text NOT NULL,
`display_flg` tinyint(1) NOT NULL DEFAULT '1',
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `jobs` (
`title`,
`subtitle`,
`detail`,
`created_at`,
`updated_at`
) VALUES
('仕事内容1', '書類の作成・処理', '担当する最も代表的な仕事は「書類の作成・処理」です。会社の経営には、さまざまな書類が必要になります。...', NOW(), NOW()),
('仕事内容2', '書類のファイリング・整理', '作成した書類は、あとで確認できるように保存しておく必要があります。それが「書類のファイリング・整理」のおかげの仕事です。...', NOW(), NOW()),
('仕事内容3', 'データ入力', 'パソコンを使った「データ入力」も、担当する主な仕事のひとつです。...', NOW(), NOW()),
('仕事内容4', '電話・来客対応', '電話や来客に対応するのも、多くの会社で、担当者の離席中に、代わりに用件を聞いたりするのも、多く場合は、担当職の仕事です。...', NOW(), NOW()),
('仕事内容5', 'その他', 'その他にも「郵便物の発送・仕分け」も、多くの会社で、業務職の仕事となっています。...', NOW(), NOW());

##################################################
このコードをベースに laravel migration ファイルを作成
##################################################

CREATE TABLE IF NOT EXISTS `jobs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`subtitle` varchar(255) NOT NULL,
`detail` text NOT NULL,
`display_flg` tinyint(1) NOT NULL DEFAULT '1',
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
)
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateJobsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('jobs', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('subtitle');
$table->text('detail');
$table->boolean('display_flg')->default(true);
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('jobs');
}
}

##################################################
このコードをベースに laravel models ファイルを作成
##################################################

CREATE TABLE IF NOT EXISTS `jobs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`subtitle` varchar(255) NOT NULL,
`detail` text NOT NULL,
`display_flg` tinyint(1) NOT NULL DEFAULT '1',
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
)
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Job extends Model
{
use HasFactory;

protected $fillable = [
'title',
'subtitle',
'detail',
'display_flg',
];
}

##################################################
このコードをベースに laravel controller ファイルを作成
##################################################

CREATE TABLE IF NOT EXISTS `jobs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`subtitle` varchar(255) NOT NULL,
`detail` text NOT NULL,
`display_flg` tinyint(1) NOT NULL DEFAULT '1',
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
)
<?php

namespace App\Http\Controllers;

use App\Models\Job;
use Illuminate\Http\Request;

class JobController extends Controller
{
public function index()
{
$jobs = Job::all();
return view('jobs.index', compact('jobs'));
}

public function create()
{
return view('jobs.create');
}

public function store(Request $request)
{
Job::create($request->all());
return redirect()->route('jobs.index');
}

public function show(Job $job)
{
return view('jobs.show', compact('job'));
}

public function edit(Job $job)
{
return view('jobs.edit', compact('job'));
}

public function update(Request $request, Job $job)
{
$job->update($request->all());
return redirect()->route('jobs.index');
}

public function destroy(Job $job)
{
$job->delete();
return redirect()->route('jobs.index');
}
}

##################################################
このコードをベースに laravel index.blade ファイルを作成 bootstrap使用
##################################################

CREATE TABLE IF NOT EXISTS `jobs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`subtitle` varchar(255) NOT NULL,
`detail` text NOT NULL,
`display_flg` tinyint(1) NOT NULL DEFAULT '1',
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="{{ asset('assets/css/bootstrap.min.css') }}">
</head>
<body>
<div class="container">
<h1>Jobs</h1>
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>Title</th>
<th>Subtitle</th>
<th>Detail</th>
<th>Display Flag</th>
<th>Created At</th>
<th>Updated At</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@foreach($jobs as $job)
<tr>
<td>{{ $job->id }}</td>
<td>{{ $job->title }}</td>
<td>{{ $job->subtitle }}</td>
<td>{{ $job->detail }}</td>
<td>{{ $job->display_flg }}</td>
<td>{{ $job->created_at }}</td>
<td>{{ $job->updated_at }}</td>
<td>
<a href="{{ route('jobs.edit', $job) }}" class="btn btn-primary">Edit</a>
<form action="{{ route('jobs.destroy', $job) }}" method="post">
@csrf
@method('delete')
<button type="submit" class="btn btn-danger">Delete</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<script src="{{ asset('assets/js/bootstrap.bundle.min.js') }}"></script>
</body>
</html>

##################################################
このコードをベースに laravel create.blade ファイルを作成 bootstrap使用
##################################################

CREATE TABLE IF NOT EXISTS `jobs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`subtitle` varchar(255) NOT NULL,
`detail` text NOT NULL,
`display_flg` tinyint(1) NOT NULL DEFAULT '1',
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
)
<form action="{{ route('jobs.store') }}" method="post">
@csrf
<div class="form-group">
<label for="title">Title</label>
<input type="text" class="form-control" id="title" name="title" required>
</div>
<div class="form-group">
<label for="subtitle">Subtitle</label>
<input type="text" class="form-control" id="subtitle" name="subtitle" required>
</div>
<div class="form-group">
<label for="detail">Detail</label>
<textarea class="form-control" id="detail" name="detail" required></textarea>
</div>
<button type="submit" class="btn btn-primary">Create</button>
</form>

##################################################
このコードをベースに laravel edit.blade ファイルを作成 bootstrap使用
##################################################

CREATE TABLE IF NOT EXISTS `jobs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`subtitle` varchar(255) NOT NULL,
`detail` text NOT NULL,
`display_flg` tinyint(1) NOT NULL DEFAULT '1',
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
)
<form action="{{ route('jobs.update', $job->id) }}" method="post">
@method('PUT')
@csrf
<div class="form-group">
<label for="title">Title</label>
<input type="text" class="form-control" id="title" name="title" value="{{ $job->title }}" required>
</div>
<div class="form-group">
<label for="subtitle">Subtitle</label>
<input type="text" class="form-control" id="subtitle" name="subtitle" value="{{ $job->subtitle }}" required>
</div>
<div class="form-group">
<label for="detail">Detail</label>
<textarea class="form-control" id="detail" name="detail" required>{{ $job->detail }}</textarea>
</div>
<button type="submit" class="btn btn-primary">Update</button>
</form>

##################################################
このコードをベースに laravel route web.php コード作成
##################################################

CREATE TABLE IF NOT EXISTS `jobs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`subtitle` varchar(255) NOT NULL,
`detail` text NOT NULL,
`display_flg` tinyint(1) NOT NULL DEFAULT '1',
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
)
# web.php(1行で crud)

Route::resource('jobs', 'JobController');

# web.php(crud)
Route::get('jobs', 'JobController@index')->name('jobs.index'); // index 表示
Route::get('jobs/create', 'JobController@create')->name('jobs.create'); // create 表示
Route::post('jobs', 'JobController@store')->name('jobs.store'); // create 表示後 input 登録
Route::get('jobs/{job}', 'JobController@show')->name('jobs.show'); // show 表示
Route::get('jobs/{job}/edit', 'JobController@edit')->name('jobs.edit'); // edit 表示
Route::put('jobs/{job}', 'JobController@update')->name('jobs.update'); // edit 表示後 input 更新
Route::delete('jobs/{job}', 'JobController@destroy')->name('jobs.destroy'); // edit 表示後 delete 削除

タイトルとURLをコピーしました