php.iniのパスを簡単に探す
php --ini
php -i
php -r "echo phpinfo();" | grep "php.ini"
Laravel関連のコマンド・コード覚書き
Laravel関連のコマンド・コード覚書き
Check routes
php artisan route:list -v
Generate controller sample
php artisan make:controller JobController --resource php artisan make:controller UserController --resource php artisan make:controller UserJobController --resource
Generate model sample
php artisan make:model Job -m
Generate resource sample
php artisan make:resource JobResource php artisan make:resource UserResource php artisan make:resource ThreadResource php artisan make:resource MessageResource
Generate seeder sample
php artisan make:seeder JobSeeder php artisan make:seeder ThreadSeeder
Generate request
php artisan make:request IndexUser php artisan make:request StoreUser
Execute seed
php artisan db:seed php artisan db:seed --class=UserTableSeeder
migrate
php artisan migrate php artisan migrate --force php artisan migrate:rollback php artisan migrate:rollback --step=5 php artisan migrate:reset php artisan migrate:refresh php artisan migrate:refresh --seed php artisan migrate:refresh --step=5 php artisan migrate:fresh php artisan migrate:fresh --seed
php artisan make:migration create_users_table --create=users php artisan make:migration add_votes_to_users_table --table=users
key generate
php artisan key:generate --show
Enable Query Log
\DB::enableQueryLog();
GormのPreload時のstatusチェックの挙動
GormのSQLでPreloadを利用する場合、各モデルと紐付けるタイミングで条件を指定したくなる場合がある。 Preloadに条件指定する場合に、上手く実行されるケースとされないケースがある。
こちらは正しくすべてのテーブルでstatusが指定される。
func (questionRepository *questionRepository) FindQuestions(tx *gorm.DB, questions *[]model.Question) (err error) { if result := tx. Where("status = ?", status.Valid). Preload("User", "status = ?", status.Valid). Preload("User.Contact", "status = ?", status.Valid). Find(&questions); result.Error != nil && !result.RecordNotFound() { return result.Error } return nil }
しかし、こちらだとquesionsテーブルではステータスが正しく指定されるが、それ以外のテーブルでstatusが正しく指定されない場合がある。
func (questionRepository *questionRepository) FindQuestions(tx *gorm.DB, questions *[]model.Question) (err error) { if result := tx. Where("status = ?", status.Valid). Preload("User.Contact", "status = ?", status.Valid). Preload("User", "status = ?", status.Valid). Find(&questions); result.Error != nil && !result.RecordNotFound() { return result.Error } return nil }
Preloadの順番に気をつけて