フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援
フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援

Laravel を試してみる

はじめに

日本でのLaravelの認知度も上がってきており、業務での使用も拡大しつつあるようです。

ネットでは、すでに初心者向けの記事が多数存在しますが、それはそれとして、、、

自分なりに確認しながらその記録を残しておくことにします。

どちらかというと、自分へのメモ的な記事ですので、簡略化しており、
つまらない内容かもしれませんが、ご了承ください。

ただ、初めてlaravelをやってみようとという人に限定すれば、
ほんの少しは参考になる可能性もあります。
記載内容に間違えがあったらごめんなさい。

インストール後に、実際に作成してみるプロジェクトは、
簡単な応募フォームの導入部分のみを試すものにします。

・入力項目 ⇒ 名前のテキストフィールド
・ボタンは ⇒ 登録ボタン

テキストを入力して登録ボタンを押すと、DBに名前のデータが格納される。
ただ、それだけの超シンプルなものです。

インストール

自PCの環境
– Windows10
– PHP7
– Mysql

1.composer
自分のPCには以前から既に入れていたので、ここでは特になにもしてないですが、
getcomposer.org/doc/00-intro.md#installation-windows
ここからダウンロードしたものをインストールすればよさそうです。

2.laravelのインストーラを準備
composer global require “laravel/installer”

DOS窓でこれを入力するだけ。
laravel11.jpg

プロジェクト生成

3.laravelコマンドを使ってプロジェクト生成
laravel new entry

composer create-projectによる作成方法もあるようですが、
とりあえずlaravelコマンドで実施。

laravel22.jpg

C:project_xampphtdocslaravel55
ここをカレントディレクトリとして実行したら、この配下にentryというディレクトリが生成され、
中をみると多数ファイルやフォルダが出来ていた。
(laravel5.7を試してるのに間違ってlaravel55というフォルダ名にしてしまった!)

laravel25.jpg

4.ドキュメントルートの設定
自PC上のhttpd.confを編集(抜粋)

 DocumentRoot "C:project_xampphtdocslaravel55entrypublic"
 <Directory "C:project_xampphtdocslaravel55entrypublic">

初期表示確認

5.ブラウザで

http://localhost

を実行
初期画面があっさり表示される。
インストール完了!

laravel44.jpg
これは、下記テンプレートファイルが表示さているようである。
/entry/resources/view/welcome.blade.php

データベース準備

DB環境を整える。ますはDBを作成。
自分のPCには既にMySQLが入っているので、それを使ってみる。
入ってない人はPostgreSQLでもいいので事前に使える環境にしておく必要がありますが、
そのあたりはここでは割愛します。
まずは、テスト用のデータベースを作成。

お試しなんで、
$mysql -u root
でログインし、
mysql> create database laraveldb;
とでもして、データベース作成完了。

laravelのDB環境を設定

/entry/.env
というファイルがあるので、それを編集する。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laraveldb <—–これ(DB名)
DB_USERNAME=root <—–これ(DBアカウント)
#DB_PASSWORD=secret

上記設定で終わり

モデルやコントローラを準備

カレントディレクトリを
/entry
にして、

php artisan make:model Entry -m -c -r

とりえあず、上記をそのまま実行!

すると、

・マイグレーションファイル
/entry/database/migrations/2018_10_30_075410_create_entries_table.php

・モデル
/entry/app/Entry.php

・コントローラ
entry/app/Http/Controllers/EntryController.php

が自動で生成されるようだ!

DBにカラムを追加

/entry/database/migrations/2018_10_30_075410_create_entries_table.php
このファイルの中を見てみると、既にidと日時のがセットされていたので、

    public function up()
    {
        Schema::create('entries', function (Blueprint $table) {
            $table->increments('id');
            $table->increments('name');  <----これ
            $table->timestamps();
        });
    }

のようにnameを追加する。

そして、

php artisan migrate

を実行!

MySLQのDB(laraveldb)の中をのぞいてみたら、テーブルが作成されていた!

MariaDB [(none)]> use laraveldb;
Database changed
MariaDB [laraveldb]> show tables;

+---------------------+
| Tables_in_laraveldb |
+---------------------+
| entries             |
| migrations          |
| password_resets     |
| users               |
+---------------------+
4 rows in set (0.00 sec)

+------------+------------------+------+-----+---------+----------------+
| Field      | Type             | Null | Key | Default | Extra          |
+------------+------------------+------+-----+---------+----------------+
| id         | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name       | varchar(191)     | NO   |     | NULL    |                |
| created_at | timestamp        | YES  |     | NULL    |                |
| updated_at | timestamp        | YES  |     | NULL    |                |
+------------+------------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)

ルート設定

/entry/routes/web.php

このファイルを、下記のように修正する

Route::get('/', function(){return redirect('/entries');});
Route::post('/entries', 'EntryController@store');

コントローラ設定

/entry/app/Http/Controllers/EntryController.php

public function store(Request $request)
{
    $entry = new Entry;
    $entry->name = request('name');
    $entry->save();
    return redirect('/entries');
}

これを追加

ビューの作成

resources/views/entries.blade.php”

@extends('layout')

@section('content')
<h1>応募フォーム</h1>
<form action="/entries" method="POST">
    
    <label for="entry">名前</label>
    <input type="text" name="name" id="entry-name">
    <button type="submit">登録</button>
</form>
@endsection


   ↑ これは、CSRF対策としてトークンを埋め込むために必要のようだ。

モデルファイル

app/Entry.php
特に手は入れない

動作確認

http://localhost/entries

laravel88.jpg

taroと入力して登録ボタンを押した後、
DBの中身を確認してみる。

MariaDB [laraveldb]> select * from entries;
+----+------+---------------------+---------------------+
| id | name | created_at          | updated_at          |
+----+------+---------------------+---------------------+
|  1 | taro | 2018-10-31 11:59:41 | 2018-10-31 11:59:41 |
+----+------+---------------------+---------------------+
1 row in set (0.00 sec)

taro と登録されていた

次回以降の予定ですが、
バリデーションの実装
確認、完了画面の実装
と進んでみようと思います。

おわり

[紹介元] PHPタグが付けられた新着投稿 – Qiita Laravel を試してみる

コメント

記事に戻る

コメントを残す