PostgreSQL、集約関数でカラムエイリアスにhavingは使えない?
PostgreSQL、集約関数でカラムエイリアスにhavingは使えないっぽい
例)商品テーブル(products)からcategory_idごとの商品の合計値段から、合計値段が1000を越えるcategory_idを抽出
- NG:
select category_id, sum(price) as amount from products group by category_id having amount > 1000
- OK:
select category_id, sum(price) from products group by category_id having sum(price) > 1000
Laravelでhttp経由でDB+Webサーバーのヘルスチェックサンプル
Laravelでhttp経由でDB+Webサーバーのヘルスチェックサンプルです
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class HealthCheckResultsController extends Controller { public function __invoke() { $status = 500; try { DB::connection(config('database.default'))->getPdo(); $status = 200; } catch (\Exception $exception) { } return response() ->json([], $status); } }
Route::get('/health', 'HealthCheckResultsController');
Laravel 8+, PHP 8+であれば以下を使いたかった
Laravel 7+, PHP 7.4+でやろうとした残骸
tsmsogn/laravel-healthを利用する *1
composer.jsonに以下を追加
{ "repositories": { "spatie/laravel-health": { "type": "vcs", "url": "https://github.com/tsmsogn/laravel-health" } } }
composerでインストール
composer require spatie/laravel-health:dev-main
*1:いろいろな制限付き
laravelでCall to undefined method Illuminate\Routing\RouteFileRegistrar::get()
bad
Route::prefix('admin')->namespace('Admin')->name('admin.')->group(function () { // Authentication Routes... $this->get('login', 'Auth\LoginController@showLoginForm')->name('login'); });
good
Route::prefix('admin')->namespace('Admin')->name('admin.')->group(function () { // Authentication Routes... Route::get('login', 'Auth\LoginController@showLoginForm')->name('login'); });
Laravelで継承元モデルの$withを引き継ぎ、オーバーライドする
Model <- Bicycle <- ElectricBicycle
という継承関係で
Bicycleモデルで$withを使ってイーガーローディングしている
Bicycleモデルを継承したElectricBicycleモデルを作り、ElectricBicycle独自で実装したリレーションがあるとする
ElectricBicycleモデルでBicycleモデルの$with+独自実装したリレーションをイーガーローディングするためには以下のようにする
Bicycle
class Bicycle extends Model
{
$with = [
'handle'
];
public function handle()
{
return $this->hasOne(Handle::class);
}
}
ElectricBicycle
class ElectricBicycle extends Bicycle { public function __construct(array $attributes = []) { parent::__construct($attributes); $this->with = array_merge( $this->with, [ 'battery', ] ); } public function battery() { return $this->hasOne(Battery::class); } }
Laravelのパスワードリセットを爆速で日本語化する方法
の
https://github.com/Laravel-Lang/lang/blob/master/locales/ja/ja.json
を resources/lang/ja/ja.json に保存でおk