しぐれがき

これまで挑戦したことの備忘録!!

【投稿アプリ自作(5)】モデルファイルの設定(Laravel)

f:id:shiguregaki:20170708103729j:plain
Webアプリを自作するためにPHPフレームワークのLaravelを導入することに決めました。
PHP初心者かつLaravel初心者ですが、自分なりにスキルを得るためにLaravelを用いた記事投稿アプリを自作しました。その過程を備忘録としてまとめます。
最終的にはブラウザを利用して記事投稿画面の表示、ユーザごとの記事投稿数のグラフ化を目指したいと思います。
本記事は連載【投稿アプリ自作】の第五回目で、モデルファイルとデータベースを紐づけるための設定内容をまとめます。
※:Laravelは5.3からファイル構成が大幅に変わりました。本記事ではLaravel5.3以降を使って説明したいと思います。
※2:データベースはXAMPPに入っていたMySQLを使うことにします。事前にデータベースアカウントを登録しておいてください。

目次

ゴール

本記事では、前回で新規作成したモデルファイルに修正を加えて、テーブルにアクセスできるようにします。
・ArticleUser.php
・Category.php
・Tag.php
・Article.php
・DetailedArticle.php

必要なもの

必要なもの 価格(円)
1 PC ピンキリ
備考 インターネット接続可能なこと
2 XAMPP 無料
備考 持っていない場合は、こちらを参照→XAMPPのインストール方法
3 Composer 無料
備考 持っていない場合は、こちらを参照→Composerのインストール方法
4 Laravelフレームワーク 無料
備考 インストールしていない場合は、こちらを参照→Laravelのインストール方法
5 MySQLのデータベースアカウント 無料
備考 持っていない場合は、こちらを参照→phpMyAdminでデータベースとユーザを新規登録する
6 投稿アプリのモデルファイル 無料
備考 前回の記事で作成したモデルファイルです。持っていない場合は、こちらを参照→【投稿アプリ自作(4)】テーブル設計とマイグレーション実行(Laravel)




Laravelソースファイルの変更

変更や新規作成するLaravelファイル一覧

Laravelのプロジェクトファイル配下にあるファイルで本記事の中で変更、新規作成するファイルについてまとめました。

ファイル名 対応 備考
1 app/Article_User.php 変更
2 app/Category.php 変更
3 app/Tag.php 変更
4 app/Article.php 変更
5 app/Detailed_Article.php 変更




ArticleUsersテーブルのモデルファイルの変更

前回マイグレーションファイルで作成したArticleUsersテーブルとモデルファイルを紐づけます。
前回作成したxxxx_xx_xx_xxxxxx_create_article_users_table.phpを見直してみると

Schema::create('article_users', function (Blueprint $table) {
となっています。ここの赤字部分がこのArticleUsersテーブルのテーブル名を示す変数名になります。
このテーブル名をArticleUsersテーブルのモデルファイルを紐づけるために以下の様にArticleUser.phpファイルを変更します。

<?php
 
namespace App;
 
use Illuminate\Database\Eloquent\Model;
 
class ArticleUser extends Model
{
    protected $table = 'article_users';
}


protected $table = 'article_users';でモデルファイルとテーブルを紐づけることができます。




Categorysテーブルのモデルファイルの変更

ArticleUsersテーブルと同様にCategorysテーブルの変数名とモデルファイルを紐づけていきます。
Category.phpファイルを以下の様に変更します。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    protected $table = 'categories';
}




Tagsテーブルのモデルファイルの変更

ArticleUsersテーブルと同様にTagsテーブルの変数名とモデルファイルを紐づけていきます。
Tag.phpファイルを以下の様に変更します。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Tag extends Model
{
    protected $table = 'tags';
}





Articlesテーブルのモデルファイルの変更

ArticleUsersテーブルと同様にArticlesテーブルの変数名とモデルファイルを紐づけていきます。
Article.phpファイルを以下の様に変更します。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    protected $table = 'articles';
}




DetailedArticlesテーブルのモデルファイルの変更

ArticleUsersテーブルと同様にDetailedArticlesテーブルの変数名とモデルファイルを紐づけていきます。
DetailedArticle.phpファイルを以下の様に変更します。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class DetailedArticle extends Model
{
    protected $table = 'detailed_articles';
}

これですべてのモデルファイルとテーブルを紐づけられました。





まとめ

今回はモデルファイルとテーブルの紐づけを行いました。
これでコントローラーでデータベースを宣言することでデータベースの値を取得することができるようになります。
しかし、現状はデータベースの中身が一つもありません。データベースの確認をするためにはこのままでは使えません。
そのため、次回ではseederというダミーデータを作成する機能を使ってダミーデータを作成し、その後データベースの操作の確認をして行くことにします。



次回記事

次回記事はseederを使ってダミーデータを作成方法についてまとめたいと思います。


http://shiguregaki.hatenablog.com/entry/p46shiguregaki.hatenablog.com




前回記事

shiguregaki.hatenablog.com


以上!