2017/08/16
挑戦Laravel5.4 ミニブログ
下準備編
Laravel5.4も少しわかってきたのでチョー簡単なブログシステムを作成しようと思います。作成しながらのアップですから最終どうなるかわかりませんがお付き合いください。
新規にLaravel5.4をインストールします。
ちなみに、私はWindows10Pro64bitにXAMPPをインストールしております。更にComposerもインストールしています。
miniblogというフォルダにインストールします。コマンドプロンプトでXAMPPのhtdocsフォルダに移動して
composer create-project --prefer-dist larabel/laravel miniblog
コンポーザーからインストールします。この辺りは PHPフレームワーク Laravelを使ってみる を参照してみてください。
次にDBの用意です。phpmyadminでminiblogという名前のDBを作成します。 この時照合順序をutf8mb4_unicode_ciにしておきます。
データベースへの接続情報を設定します。今回インストールフォルダはminiblogなのでminiblog/.envをテキストエディタで開き
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
の部分を修正します。
.envの修正後
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=miniblog
DB_USERNAME=root
DB_PASSWORD=
以前このサイトでご紹介したときにMySQLではユニーク制約を付けたカラムには767bytesまでしか入らない(MySQLのバージョンによるかもしれない)という問題が発生しましたのでそいつのケアをしておきます。miniblog/app/Providers/AppServiceProvider.phpを開きます。
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema; // 追記
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191); // 追記
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
ここまで来ましたら既定のテーブルを作成します。miniblog/database/migrationsに既定のテーブルを作成するためのファイルがあります。コマンドプロンプトからインストールフォルダ内で
php artisan migrate
を実行します。
migrations
password_resets
users
の3つテーブルが作成されました。
認証機能を使う
Laravel5.4には認証機能が備わっていますので使ってみます。
php artisan make:auth
とコマンドプロンプトで実行します。ほどなくAuthentication scaffolding generated successfully.とメッセージが表示されるはずです。
すべては把握しておりませんが、このコマンドでいくつかファイルが自動で作成されたりweb.phpに自動で追記されたりするようです。
そして、welcomeページも少し変わりました。
これはauth機能を追加していないときです。
そしてこれがauth機能を追加した後の画面です。右上にLoginとRegisterが追加されています。Loginをクリックしてみます。
ログイン画面ですがユーザー登録しておりませんので今は使用できないです。ならばということでRegisterをクリックします。
名前とメールアドレス、パスワード、パスワードの確認がありますので入力してRegisterボタンをクリックしてみます。
見事登録されました。
このログインの有効範囲と無効範囲の設定方法や、ユーザー登録画面の隠ぺい方法、ユーザー権限の種類など、まだまだ未知な部分はありますが、いったん一段落ということにしておきます。