ライブラリからソースを見失った際の備忘的なものです。
そのままでは動きませんのでご注意ください。
<?php
namespace App\Rtl\Laravel\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\Facades\Validator;
class _AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
// もし強制HTTPSにするのであればめんどくさいですが、.htaccessで行ってください、こちらでは直リンクでhttpにできてしまいます。
// if (config('app.env') === 'production') {
// \URL::forceScheme('https');
// }
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
// paginatorのCSSにBootstrapを使用します。
/* 追記、Laravel11ではblade側に記述することで不要です
<div class="d-flex justify-content-center mt-3">
{{ $rows->links('pagination::bootstrap-5') }}
</div>
*/
// Paginator::useBootstrap();
/*
独自のvalidatorを追加しました。
resources/lang/ja/validation.php
に以下の追記をしてください。
'zenkaku_hiragana' => ':attribute は全角のひらがなで入力してください',
'zenkaku_katakana' => ':attribute は全角のカタカナで入力してください',
継承先の子クラスのboot()はオーバーライドするか削除するのを忘れないでください。
*/
Validator::extend('zenkaku_hiragana', function ($attribute, $value, $parameters) {
return !(preg_match('/[^ぁ-んー]/u', $value) !== 0);
});
Validator::extend('zenkaku_katakana', function ($attribute, $value, $parameters) {
return !(preg_match('/[^ァ-ヴー ]/u', $value) !== 0);
});
/*
enumのvaluesとvalidateします。
使用方法:カスタムリクエストに以下のように実装します。
'section' => ['required', 'integer', 'enum:' . UserSection::class],
*/
Validator::extend('enum', function ($attribute, $value, $parameters, $validator) {
$enumClass = $parameters[0];
$enumValues = array_map(fn($case) => $case->value, $enumClass::cases());
// 第三引数をtrueにすると型判定を厳格にしますが、<input>は文字列で入りますのでfalseにしています、厳格にしたい場合は継承先でオーバーライドしてください。
return in_array($value, $enumValues, false);
}, '選択された値は無効です。');
}
}
投稿者プロフィール
最新の投稿
Laravel2025年4月11日XServer Lalavelのタスクスケジューラー
ぼやき2025年4月11日Google Search Console セキュリティの問題
Git2025年4月3日GithubActionsでのSSH系エラー
Git2025年3月21日git コマンド集