はじめに
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を選択