こんばんは。
恥ずかしながらしなかった備忘録です。
ルートパラメータの成約でよく whereとかを使うと思います。
こんな感じの。
Route::get('/user/{id}', function (Request $request, int $id) { return 'User ' . $id; })->where('id', '[0-9]+'); ← これ
idを指定する場合は、primarykeyを指定する感じが多いのかなと思うので、まさに例で書いたような ->where('id', '[0-9]+');
みたいにしちゃうと思います。
int型なら一旦これでもいいかなと思うのですが、primarykeyがuuidの場合、ざっくりstringを全部通すようにするか、自力でフォーマットを作ってやるかなのかなぁ?と思ってたのですが、 whereUuid()
なるものがあり、ビビりました。
/** * Specify that the given route parameters must be UUIDs. * * @param array|string $parameters * @return $this */ public function whereUuid($parameters) { return $this->assignExpressionToParameters($parameters, '[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}'); }
ほかのwhereと同じでこんな感じで指定できます。
Route::get('/user/{id}', function (Request $request, string $id) { return 'User ' . $id; })->whereUuid('id'); ← これ
終わりに
laravelはまじで知らないだけでいろんなものがいっぱいありますね...
現場からは以上です。