本記事ついて
本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。
構築環境
・EC2:Amazon Linux2
・PHP7.3
・Laravel 5.8
・mariadb
MVCとは
MVCとは、ソフトウェアの設計モデルの一つで、機能を「Model」(モデル)、「View」(ビュー)、「Controller」(コントローラ)の三つの役割に分離して実装し、それらが連携して処理を進める方式。
Modelはデータの管理や手続きを扱い、Viewは他の二要素からの指示を受けて利用者への表示・出力(の変更)を行い、システムによっては利用者の操作・入力内容をControllerに伝達する。Controllerは利用者からの操作や入力を受け付けて解釈し、ModelやViewに対応する処理を行うようメッセージを発する。
Model
Modelとはデータを管理するところ、データベースの処理を担当する部分
SQLのテーブル作成
laravelにはマイグレーションにてテーブル作成できますが、今回はSQLのクエリを発行してテーブルを作ります。
CREATE TABLE `people` (
`id` INTEGER PRIMARY KEY AUTO_INCREMENT,
`name` TEXT NOT NULL,
`mail` TEXT,
`age` INTEGER
);
をSQL開始して打ち込んでください。
show tables;
にて自分の作ったテーブルが確認できれば大丈夫です。
次にダミーレコード入れてください
INSERT INTO `people` VALUES (1,'名前','メールアドレス',年齢);
確認
SELECT id,name,mail,age FROM people;
ORM
ORMとは、データベースのレコードをプログラミング言語のオブジェクトとして扱えるようにする仕組み
LaravelにはEloquentというものがある。
Eloquent
Eloquentではモデルと言うクラスを定義し、これでデータベースを操作する。
モデルの作成
モデルと言うクラスです。勘違いしないで!!
php artisan make:model Person
php artisan make:model モデル名と言う形でコマンドを打ってください。
※モデル名は単数形で、テーブルは複数形で自分はしていなくてえらい目にあいました。
appファルダのProvidersフォルダにPerson.phpが出来ていると思います。
ファイルの中身は
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Person extends Model
{
//
}
とりあえず作成はできたので後は処理ごとの説明にしたいと思います。
Controllerを作成
php artisan make:controller PersonController
use App\Person;
public function index(Request $request)
{
$items = Person::all();
return view('person.index', ['items' => $items]);
}
書き加えてください.
use App\Person;を書き忘れてえらい目にあいました!!
$items = Person::all();で全レコード取得している。
viewを作成
viewsファルダ内にpersonファルダを作成し、そこにindex.blade.phpを作成してください
<table>
<tr><th>Name</th><th>Mail</th><th>Age</th></tr>
@foreach ($items as $item)
<tr>
<td>{{$item->name}}</td>
<td>{{$item->mail}}</td>
<td>{{$item->age}}</td>
</tr>
@endforeach
</table>
を書いてください。
ルート情報の追加
Route::get('person', 'PersonController@index');
ルート情報を追加
これで基本的な部分は確認ができました。
次はモデルクラスのメソッドで色々やってみたいと思います。
参考資料