Laravel入門|PHPフレームワークによるWebサイトの作成方法について解説!

- システム
エンジニア - Laravel入門編を知りたいです。
- プロジェクト
マネージャー - LaravelでWebサイトを簡単に作成できるので解説します。
Laravel入門 – PHPフレームワークによるWebサイトの作成方法について
今回はLaravel入門編として、簡単なWebサイトを作成する方法を紹介します。
LaravelはPHPのフレームワークであり、簡単にWebサイトを作成できます。
Laravel入門編に興味のある方はぜひご覧ください。
アプリケーションの作成
Laravel入門編として、アプリケーションの作成方法を説明します。
以下のコマンドを実行します。
1 |
$ composer create-project laravel/laravel testapp --prefer-dist |
コマンドが成功したらtestappディレクトリに移動してください。
データベースの作成
Laravel入門編として、データベースの作成方法を説明します。
MySQLで以下のコマンドを実行します。
1 2 3 |
$ mysql -u root mysql> create database testdb; mysql> exit; |
その後、.envファイルを修正します。作成したデータベースを記載してください。
1 2 3 |
DB_DATABASE=testdb DB_USERNAME=root #DB_PASSWORD= |
モデル・コントローラの作成
Laravel入門編として、モデル・コントローラの作成方法を説明します。
以下のコマンドを実行します。
1 |
$ php artisan make:model MyUser -r -m -c |
以下のようなファイルが生成されますので、修正します。
database/migrations/2020_12_04_125524_create_my_users_table.php
idとtimestampsはデフォルトで記載されていますので、必要なカラムを追記します。
1 2 3 4 5 6 7 8 9 10 |
public function up() { Schema::create('my_users', function (Blueprint $table) { $table->id(); $table->string('name'); // 追加 $table->integer('age'); // 追加 $table->string('email'); // 追加 $table->timestamps(); }); } |
ファイルを保存後、マイグレーションコマンドを実行します。
my_usersテーブルが作成されます。
1 |
$ php artisan migrate |
ルーティングの設定
Laravel入門編として、ルーティングの設定方法を説明します。
routes/web.phpファイルを修正します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; /* |-------------------------------------------------------------------------- | API Routes |-------------------------------------------------------------------------- | | Here is where you can register API routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | is assigned the "api" middleware group. Enjoy building your API! | */ Route::get('/', function(){return redirect('/myusers');}); Route::get('/myusers', 'App\Http\Controllers\MyUserController@index'); Route::post('/myusers', 'App\Http\Controllers\MyUserController@store'); Route::delete('/myusers/{id}', 'App\Http\Controllers\MyUserController@destroy'); |
コントローラの設定
Laravel入門編として、コントローラの設定方法を説明します。
app/Http/Controllers/MyUserController.phpファイルを修正します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
<?php namespace App\Http\Controllers; use App\Models\MyUser; use Illuminate\Http\Request; class MyUserController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $myUser = MyUser::all(); return view('myusers', ['myusers' => $myUser]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $myUser = new MyUser; $myUser->name = request('name'); $myUser->age = request('age'); $myUser->email = request('email'); $myUser->save(); return redirect('/myusers'); } /** * Display the specified resource. * * @param \App\Models\MyUser $myUser * @return \Illuminate\Http\Response */ public function show(MyUser $myUser) { // } /** * Show the form for editing the specified resource. * * @param \App\Models\MyUser $myUser * @return \Illuminate\Http\Response */ public function edit(MyUser $myUser) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Models\MyUser $myUser * @return \Illuminate\Http\Response */ public function update(Request $request, MyUser $myUser) { // } /** * Remove the specified resource from storage. * * @param \App\Models\MyUser $myUser * @return \Illuminate\Http\Response */ public function destroy(Request $request, $id, MyUser $myUser) { $myUser = MyUser::find($id); $myUser->delete(); return redirect('/myusers'); } } |
ビューの生成
Laravel入門編として、ビューの生成方法を説明します。
resources/views/myusers.blade.phpを新規作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
<!DOCTYPE html> <html> <head> <title>User List</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> </head> <body> <div class="container"> <h2>User List</h2> <form action="/myusers" method="POST" class="form-horizontal"> {{ csrf_field() }} <!-- User Name --> <div class="form-group"> <label for="myuser" class="col-sm-3 control-label">Name</label> <div class="col-sm-6"> <input type="text" name="name" id="myuser-name" class="form-control"> </div> <label for="myuser" class="col-sm-3 control-label">Age</label> <div class="col-sm-6"> <input type="text" name="age" id="myuser-age" class="form-control"> </div> <label for="myuser" class="col-sm-3 control-label">Email</label> <div class="col-sm-6"> <input type="text" name="email" id="myuser-email" class="form-control"> </div> </div> <!-- Add User Button --> <div class="form-group"> <div class="col-sm-offset-3 col-sm-6"> <button type="submit" class="btn btn-xs btn-primary"> Add User </button> </div> </div> </form> <!-- Current Users --> <h2>Current Users</h2> <table class="table table-striped task-table"> <thead> <th>Name</th><th>Age</th><th>Email</th><th> </th> </thead> <tbody> @foreach ($myusers as $myuser) <tr> <!-- User Name --> <td><div>{{ $myuser->name }}</div></td> <td><div>{{ $myuser->age }}</div></td> <td><div>{{ $myuser->email }}</div></td> <td> <form action="/myusers/{{ $myuser->id }}" method="POST"> {{ csrf_field() }} {{ method_field('DELETE') }} <button class="btn btn-xs btn-danger">Delete User</button> </form> </td> </tr> @endforeach </tbody> </table> </div> </body> </html> |
以下のコマンドで、サーバを起動します。
1 |
$ php artisan serve |
Webブラウザから「http://サーバアドレス:8000/」にアクセスします。
ユーザを追加・削除してみてください。
- システム
エンジニア - ルーティングやコントローラを設定できるんですね。
- プロジェクト
マネージャー - 他にも、ビューの生成もできますので試してみてください。
まとめ
いかがでしたでしょうか。
今回は、Laravel入門編として、アプリケーションを作成してみました。ここで紹介したものはあくまでも入門編であり、この他にも様々な仕組みがあります。
ぜひご自身でソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


新着案件New Job
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅)遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅)病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅)開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅)債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅)PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)