PHP
laravel
scaffold
laravel5

多対多リレーションシップを実装したcrud-d-scaffoldパッケージを、Cloud9で試してみる

Laravel 5.5で、CRUDアプリが簡単に作れるScaffoldパッケージに、多対多リレーションを実装しました。

ということで、Cloud9で簡単に試す方法をまとめておきます。

(1)Cloud9のアカウントを作成する

■Cloud9
https://c9.io/

Githubのアカウントを持っている人は、それで入れるのでらくちん。

(2)ワークスペースの作成

Create New Workspace から、templateはBlankでOK

(3)もろもろインストール

PHP7.1とか、それに付随するものとか、Laravelもざっくりインストールしてしまいます。
説明のメインではないので、さっくりと。

//php その他もろもろインストール
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install libapache2-mod-php7.1
sudo a2dismod php5
sudo a2enmod php7.1
sudo apt-get install php7.1-dom php7.1-mbstring php7.1-zip php7.1-mysql php7.1-sqlite
sudo apt-get install php7.1-curl

//Laravel インストール
sudo composer self-update
sudo composer create-project --prefer-dist laravel/laravel ./laravel
shopt -s dotglob
sudo chown ubuntu:ubuntu * -hR
mv laravel/* ./
rm -rf laravel

(4)Laravel公開フォルダ設定

sudo vim /etc/apache2/sites-enabled/001-cloud9.conf

開いた画面で以下、修正

DocumentRoot /home/ubuntu/workspace

DocumentRoot /home/ubuntu/workspace/public

閉じるときは、
Esc キーおしてから、
:wq!

sudo composer update

(5).envの修正(DBをsqliteに変更)

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

DB_CONNECTION=sqlite
#DB_HOST=127.0.0.1
#DB_PORT=3306
#DB_DATABASE=homestead
#DB_USERNAME=homestead
#DB_PASSWORD=secret`

touch ./database/database.sqlite

(6)いよいよ本題、crud-d-scaffoldパッケージをインストールします。

composer require dog-ears/crud-d-scaffold

終了。

php artisanすると、
- 'crud-d-scaffold:setup' : Setup crud-d-scaffold with bootstrap 3
が、見えるはず。

(7)で、アプリ生成実行!

(必要なら、ここでgitを設定しておいてもよいかも)

//必要アセットファイルのコピー
php artisan vendor:publish --tag=public --force

//サンプル設定データのコピー
cp ./vendor/dog-ears/crud-d-scaffold/crud-d-scaffold.json.sample ./crud-d-scaffold.json

//アプリ生成実行
php artisan crud-d-scaffold:setup -f

//最後に、マイグレーションとシーディングを行います。

php artisan migrate
php artisan db:seed

これで、できあがり。
プレビューすると、実際にアプリケーションを触れると思います。

サンプルのモデル構成

サンプルのモデルは、4つ
・nicePost
・beautifulTag
・brilliantCategory
・goodComment

命名ルールのデバッグ上、へんなモデル名ですが、気にしない。

多対多リレーション
・nicePost - beautifulTag
nicePost - brilliantCategory

1対多リレーション
nicePost - goodComment

となっています。

なにかわからないこととか、つっこみどころとかあれば、
気軽につっこんでくださいませ。

以上。