ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.
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
'twitter' => [
'client_id' => env('TWITTER_CLIENT_ID'),
'client_secret' => env('TWITTER_CLIENT_SECRET'),
'redirect' => env('TWITTER_REDIRECT'),
],
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',
ミドルウェア作成
php artisan make:middleware MiddleWareName
そのあと「app/Http/Kernel.php」にミドルウェアを登録。一番上のグローバルの所に追加すると自動ですべてのhttpリクエストでミドルウェアが動くが、実行順の影響でルート(上から3つ目)で動くミドルウェアの値が参照できない。例えば認証済みかどうかはルートで動くため、グローバルで指定したミドルウェアからは参照できない。
認証に使うテーブル変更
例:通常のUserモデルじゃなくてTestモデルのデータで認証を行う場合- 「config/auth.php」のデフォルトを下みたいな感じに”書き換える”
'defaults' => [ 'guard' => 'test', 'passwords' => 'tests', ],
- その下のguardsは書き換えじゃなくてこんなのを”追加”
'test' => [ 'driver' => 'session', 'provider' => 'tests', ],
- providersにもこんなのを”追加”
'tests' => [ 'driver' => 'eloquent', 'model' => App\Test::class, ],
Route::get('/login', 'TestController@login')->name('login');
SSL化・https化
「app/Providers/AppServiceProvider.php」のbootに
if( $this->app->environment('production') ){
\URL::forceScheme('https');
}
APP_ENV=production
データベースの時刻合わせ
laravelはそのままだと9時間ズレる。タイムゾーンをUTCから日本へ変える。「config/app.php」の’timezone’のところを編集
'timezone' => 'Asia/Tokyo',
データベースにカラム追加・変更
なんとlaravelの標準機能では一度作ったテーブルを修正できないので、それ用のパッケージを入れる。laravelプロジェクト内で、
composer require doctrine/dbal
php artisan make:migration add_column_users_table --table=users
$table->dropColumn('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() );
【おしらせ、というか完全なる宣伝】
文体がもうぜんぜん適当すぎてあれだけどものすごい自由に書いてるブログ「檸檬だくだく」もよろしく.寝る前に読める恐ろしくくだらないやつです.
こんなにも一ミリも目を引かれないタイトルを取り扱ってます: ココア20g / ハイチュウとかってさ / なぜ米と小麦を食べようと思ったのかの謎 /