laravelよく使うコマンド集

製作 プログラム

最終更新日:2019/03/12

ラムネグから一言:無料アプリを3つ作りました。記事下部にリンクがあるので見てみてくださいね。さっそくみてみる

laravelでよく使うコマンド集

最近laravelを勉強してたんで、その中でよく使うなと個人的に感じたコマンドを集めました。

何も書いてないコマンドはコマンドプロンプト(windowsのcmdとか※黒くて英語のやつ、拒否反応でるやつ)上で打ち込むやつです。

laravelのプロジェクト作成

composer create-project laravel/laravel --prefer-dist project_name

モデル作成~マイグレーションファイルも共に~

php artisan make:model TestModel -m
※モデル名はキャメルつなぎで複数形じゃないやつ。マイグレーションファイルは自動で複数形になる

認証機能の追加

php artisan make:auth

socialiteの追加(SNS認証が簡単に実装できるやつ)

composer require laravel/socialite
…の後「config/services.php」の一番下にこれを追加。facebookとかもするなら同じように追加

    'twitter'   => [
        'client_id'     => env('TWITTER_CLIENT_ID'),
        'client_secret' => env('TWITTER_CLIENT_SECRET'),
        'redirect'      => env('TWITTER_REDIRECT'),
    ],
最後「.env」に以下を追加

TWITTER_CLIENT_ID=ツイッターからもらったコンシューマーキー
TWITTER_CLIENT_SECRET=ツイッターからもらったコンシューマーシークレットキー
TWITTER_REDIRECT=ツイッターに設定したコールバックURL

abraham/twitteroauthのインストール(ツイッターAPIを簡単に使えるやつ)

composer require abraham/twitteroauth

マイグレーション実行

その前にphpmyadminとかでテーブルを新規作成。さらにプロジェクト直下にある「.env」ファイルの「DB_DATABASE、DB_USERNAME、DB_PASSWORD」(それぞれデータベース名、ユーザー名、パスワード)を自分の環境に合わせて編集
php artisan migrate

ロールバック

php artisan migrate:rollback

コントローラー作成

php artisan make:controller TestController

errorの日本語化

1.「config/app.php」のlocaleを編集する
'locale' => 'jp',
2.「resources/lang」に日本語化ファイルを置く

ミドルウェア作成

php artisan make:middleware MiddleWareName
※名前はキャメルつなぎ(文字の先頭が大文字になる命名ルールの事)

そのあと「app/Http/Kernel.php」にミドルウェアを登録。一番上のグローバルの所に追加すると自動ですべてのhttpリクエストでミドルウェアが動くが、実行順の影響でルート(上から3つ目)で動くミドルウェアの値が参照できない。例えば認証済みかどうかはルートで動くため、グローバルで指定したミドルウェアからは参照できない。

認証に使うテーブル変更

例:通常のUserモデルじゃなくてTestモデルのデータで認証を行う場合
  1. 「config/auth.php」のデフォルトを下みたいな感じに”書き換える”
  2. 
    'defaults' => [
            'guard' => 'test',
            'passwords' => 'tests',
        ],
    
  3. その下のguardsは書き換えじゃなくてこんなのを”追加”
  4. 
            'test' => [
                'driver' => 'session',
                'provider' => 'tests',
            ],
    
  5. providersにもこんなのを”追加”
  6. 
            'tests' => [
                'driver' => 'eloquent',
                'model' => App\Test::class,
            ],
    
※また「web.php」でname(‘login’)としたところに自動でリダイレクトされるようになっている

Route::get('/login', 'TestController@login')->name('login');

サーバを動かす

php artisan seave
※やめるにはコンソール(cmd)上で「Ctrl+c」

SSL化・https化

「app/Providers/AppServiceProvider.php」のbootに
if( $this->app->environment('production') ){ \URL::forceScheme('https'); }
本番環境の時は「.env」の「APP_ENV」を下記のようにするとSSLになる
APP_ENV=production

データベースの時刻合わせ

laravelはそのままだと9時間ズレる。タイムゾーンをUTCから日本へ変える。「config/app.php」の’timezone’のところを編集
'timezone' => 'Asia/Tokyo',

データベースにカラム追加・変更

なんとlaravelの標準機能では一度作ったテーブルを修正できないので、それ用のパッケージを入れる。laravelプロジェクト内で、
composer require doctrine/dbal
次にカラム追加用だったり変更用のマイグレーションファイルを作成する。名前はなんでもいいみたいですが、末尾の「–table」の部分はこれから編集したいテーブル名を指定します。
php artisan make:migration add_column_users_table --table=users
出来上がったマイグレーションファイルに追加・変更分を記述。down()の方は反対の事を記述します。例えばカラム追加する場合ならdown()はその反対のカラム削除をしたいのでこんな感じ。
$table->dropColumn('column_name');
またup()の方で「->after(‘column_name’)」を使うとカラムの位置も指摘できます。編集し終わったらいつも通り
php artisan migrate

でカラムの追加・変更ができます。

上記の続き

カラムのデータ型を変更するならchangeを使う
$table->unsignedInteger('name')->change();
カラムをユニークにするなら
$table->unique(['name']);
反対にユニークを外すなら
$table->dropUnique(['name']);

アップロードした画像の表示

laravelではアップロードした画像は「プロジェクト名/storage/」下に保存される。「public/」下じゃないため、このままだとアップロードはできても表示できない。ので公式サイトのようにしてアクセスできるようにする。
php artisan storage:link

画像処理(リサイズ/クロップなど)有効化

下記一行だけでOK。他のサイトで見かける「app.php」の編集は、laravel5.5以上なら必要ない(しなくても「Package Auto Discovery」という仕組みが入っているので勝手に有効化される)。
composer require intervention/image
例えばこんな感じで使う。バックスラッシュがないとダメ。リサイズ以外の使い方は公式サイト

\Image::make( "storage/pic/xxx.jpeg" )
->resize(140, 140)
->save(public_path(). '/storage/pic/xxx-thumbnail.jpeg' );

上記続き

下記でフォームからアップロードされた画像でもいったん保存せずにそのまま画像加工できるみたい?(未検証)
\Image::make( file_get_contents($input->file->getRealPath() );

【どどん!】ラムネグではただいまアプリを絶賛提供中!さあ、選べる3つの無料アプリ!あなたはどれにする?

【わたガチャ】

あなただけのガチャを作ろう♪

すたーと!

【みんガチャ】

みんなで一つのガチャを作りあげよう♪

すたーと!

【litty-リティ】

秘密のメッセージをフォロワーさんに送っちゃおう!

すたーと!