Laravelでアプリを初めて作った時のメモがSimpleNoteに残ってたので記事にして保管しておく.
わりと当たり前の事も書いてあるけど, まぁ, いいや.
たぶん追記していくことになる.
モデルとかコントローラーとか一括で作りたい
以下でmodelとcontrollerとmigrationとfactoryを一度に生成できる.
生成されたcontrollerにはresourceに基づいたアクションメソッドも生成される.
php artisan make:model [モデル名] -a
個別に指定するには以下. (ただしfactoryは生成されない)
php artisan make:model [モデル名] -mcr
オプションの意味はこちら.
オプション | 意味 |
---|---|
m | migrationを生成 |
c | controllerを生成 |
r | resourceに基づいたメソッドを生成 |
seederが入らない
composer dump-autoload
してないのでは?
Request Validaterを作りたい
php artisan make:request StoreBlogRequest
migrationでrenameやdefaultが設定できない
composer require doctrine/dbal
が必要.
seed投入
php artisan db:seed
factory作りたい
php artisan make:factory BookFactory
きれいにしてseedを投入したい
php artisan migrate:refresh --seed
factory使うとUnable to locate factory with nameって出る
factoryのメソッドの引数のクラス名を再度確認した方がいいよ Model::classになってるから
testingデータベースの利用
他環境でチェックアウトしたらやるやつ
composer install
(bundle install的な)
No application encryption key has been specified.
プロジェクトフォルダで
php artisan key:generate
する
eloquent経由でテストやtinkerでデータが取れない
globalScopeが効いているのでは? withoutGlobalScopesなどを利用する
ログイン中ユーザの情報取得
Auth::id() Auth::user()
unserialize(): Error at offset 0 of 40 bytes と言われる
vendor全部消して、composer.lockも消して、 composer installすればいい。
assetをコンパイルしたい
homestead環境でなら
npm install npm run dev
定期監視なら以下
npm run watch
本番環境なら以下
npm run production
ブラウザのスーパーリロード
Ctrl + F5
php artisan key:generate できない
.env作った?
テスト環境でマイグレーションしてseedを入れたい
.envをコピーして.env.testingを作る. (DBは書き換え)
php artisan migrate --seed --env=testing
Laravel duskでテストしたい
1. duskをインストール.
composer require --dev laravel/dusk php artisan dusk:install
2. dusk用のenvを作る.
.env.dusk.local
って名前で作ればいい.
3. テストコードを作る
php artisan dusk:make LoginTest
4. テストの実行
php artisan dusk
./vendor/bin/phpunitでは動かない.