#はじめに
Laravelのプロジェクトを作成するにあたって毎度実行することは変わらないが、覚えるのが大変なものを備忘録としてまとめ上げた。
目次
プロジェクト初期設定
Laravelプロジェクトを作成
composer create-project laravel/laravel --prefer-dist プロジェクト名
サーバーを起動
cd プロジェクト名
php artisan serve
Bootstrapのダウンロード & Login関連の見た目を作る
composer require laravel/ui
npm install
npm run dev
npm run dev
php artisan ui bootstrap --auth
モデルの作成
php artisan make:model モデル名(1文字目大文字&単数形) -m
php artisan migrate
再度内容を修正したい場合
php artisan migrate:fresh
migrationファイル作成
構造
up関数
migrateしたときに実行されたい部分を記述
down関数
rollbackしたときに実行されたいコードを記述
データ型
自動増分
-
increments(‘id’)
… 符号なしINTを使用した自動増分ID(主キー) -
bigIncrements(‘id’)
… 符号なしINTを使った自動増分ID(主キー)。 -
unsignedBigInteger(‘id’)
… 符号なしBIGINTを使用した自動増分ID(主キー)
数字
-
integer(‘カラム名’)
… 数値データカラム -
bigInteger(‘カラム名’)
… 数値ビッグデータカラム -
double(‘カラム名’, 桁数, 小数点以下桁数)
… 小数カラム
日付
-
date(‘カラム名’)
… 日付カラム(日付のみ) -
time(‘カラム名’)
… 時間カラム(時間のみ) -
dateTime(カラム名)
… 日時カラム -
timestamp(‘カラム名’)
… TIMESTAMPカラム -
timestamps()
… created_atとupdate_atカラム -
nullableTimestamps()
… NULL値を許すtimestamps() -
softDeletes()
… 論理削除のためのNULL値可能な deleted_at カラム追加
文字
-
char(‘カラム名’, 長さ)
… 長さを指定する文字列カラム -
string(‘カラム名’, ['長さ'])
… VARCHARカラム。第2引数で長さ指定も可、デフォルト255文字。 -
text(‘カラム名’)
… TEXTカラム -
longtext('カラム名')
… LONGTEXTカラム
その他
-
binary(‘カラム名’)
… バイナリデータカラム -
boolean(‘カラム名’)
… 真偽値カラム -
enum(‘カラム名’, [‘定数’, ‘定数’])
… ENUMカラム -
json(‘カラム名’)
… JSONフィールドカラム
Herokuデプロイ
Heroku App作成
- ログインし、右上
New
からCreate New App
を選択 - App Nameを入力 →
Create App
を選択 -
settings
→Buildpacks
にNode.js
とPHP
を追加
DB登録
-
Resources
→Add-ons
にJawsDB MySQL
と入力 -
Submit Order Form
を押す - ターミナルでプロジェクト内まで移動
-
heroku git:remote -a [Herokuアプリ名]
を実行 -
set git remote heroku to https://git.heroku.com/[Herokuアプリ名].git
を実行 -
git push heroku master
を実行(この時点で一度デプロイが完了する) -
heroku config
を実行し、JAWSDB_URLを取得
書式:mysql://[DB_USERNAME]:[DB_PASSWORD]@[DB_HOST]:[DB_PORT]/[DB_DATABASE]
-
settings
→Config Vars
のReveal Config Vars
を押し、上の情報をそれぞれ入力 - 同じ場所に
APP_KEY
(.env.example
に表記あり)とAPP_URL
(Heroku画面右上のOpen App
で開くデフォルトURL)も追加 - メールを使用している場合はその情報も入れる
ファイル準備
-
.env.example
ファイルを複製し、アプリファイル直下に.env.heroku
ファイルを作成 & 内容をDB登録の内容と合わせる -
composer.json
ファイルの"scripts"
に以下を追加
"compile": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
]
- アプリファイル直下に
Procfile
を作成し、中身にweb: vendor/bin/heroku-php-apache2 public/
を追加 - アプリファイル直下に
.htaccess
ファイルを作成、中身に以下を入れる
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
</IfModule>
-
app/Providers/AppServiceProvider.php
のboot関数に以下の記述を追加
Paginator::useBootstrap();
Schema::defaultStringLength(191);
if (request()->isSecure()) {
\URL::forceScheme('https');
}
-
app/Providers/RouteServiceProvider.php
のpublic const HOME
を/home
→/
に変更 -
app\Http\Middleware\TrustedProxies
のprotected $proxies
直後に= "*"
追加
GitHub Auto Deploy設定
- Heroku画面の
Deploy
→Deployment method
でGitHub
を選択 - GitHubのリポジトリーを選択
-
Enable Automatic Deploys
を選択
migration
heroku run php artisan migrate
デプロイ方法
- ファイルを編集
- GitHubにpushする
もしくは
- Heroku画面から
Deploy
→GitHub
→Deploy Branch
を選択