write ahead log

ロールフォワード用

Laravel困ったときメモ

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データベースの利用

このQiitaの記事参照

他環境でチェックアウトしたらやるやつ

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では動かない.