0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel備忘録

Last updated at Posted at 2022-01-07

#はじめに
Laravelのプロジェクトを作成するにあたって毎度実行することは変わらないが、覚えるのが大変なものを備忘録としてまとめ上げた。

目次

  1. プロジェクト初期設定
  2. migrationファイル作成
  3. Herokuデプロイ

プロジェクト初期設定

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作成

  1. ログインし、右上 NewからCreate New Appを選択
  2. App Nameを入力 → Create Appを選択
  3. settingsBuildpacksNode.jsPHPを追加

DB登録

  1. ResourcesAdd-onsJawsDB MySQLと入力
  2. Submit Order Formを押す
  3. ターミナルでプロジェクト内まで移動
  4. heroku git:remote -a [Herokuアプリ名]を実行
  5. set git remote heroku to https://git.heroku.com/[Herokuアプリ名].gitを実行
  6. git push heroku masterを実行(この時点で一度デプロイが完了する)
  7. heroku configを実行し、JAWSDB_URLを取得
    書式:mysql://[DB_USERNAME]:[DB_PASSWORD]@[DB_HOST]:[DB_PORT]/[DB_DATABASE]
  8. settingsConfig VarsReveal Config Varsを押し、上の情報をそれぞれ入力
  9. 同じ場所にAPP_KEY.env.exampleに表記あり)とAPP_URL(Heroku画面右上のOpen Appで開くデフォルトURL)も追加
  10. メールを使用している場合はその情報も入れる

ファイル準備

  1. .env.exampleファイルを複製し、アプリファイル直下に.env.herokuファイルを作成 & 内容をDB登録の内容と合わせる
  2. composer.jsonファイルの"scripts"に以下を追加
"compile": [
        "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ]
  1. アプリファイル直下にProcfileを作成し、中身にweb: vendor/bin/heroku-php-apache2 public/を追加
  2. アプリファイル直下に.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>
  1. app/Providers/AppServiceProvider.phpのboot関数に以下の記述を追加
Paginator::useBootstrap();
Schema::defaultStringLength(191);
if (request()->isSecure()) {
    \URL::forceScheme('https');
}
  1. app/Providers/RouteServiceProvider.phppublic const HOME/home/に変更
  2. app\Http\Middleware\TrustedProxiesprotected $proxies直後に = "*"追加

GitHub Auto Deploy設定

  1. Heroku画面のDeployDeployment methodGitHubを選択
  2. GitHubのリポジトリーを選択
  3. Enable Automatic Deploysを選択

migration

  1. heroku run php artisan migrate

デプロイ方法

  1. ファイルを編集
  2. GitHubにpushする

もしくは

  1. Heroku画面からDeployGitHubDeploy Branchを選択
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?