自動補完されたいからちゃんと class hoge に const FUGA = 1; として実装したいし
でもconfig('hoge.FUGA')で取得したいし
でもvueでも使わないといけない、雑にぐぐるとvueはvueでjsに定義してたりする
すざけるな^^
昔は全部DBでマスタ管理してたなぁ懐かしい
Model/Hoge.php
class Hoge extends Model
{
const FUGA = 1;
const PIYO = 2;
const POKO = 3;
const METAVARS = [
self::FUGA = 'ふが',
self::PIYO = 'ぴよ',
self::POKO = 'ぽこ',
];
}
config/const.php
return [
'hoge' => (new ReflectionClass(Hoge::class))->getConstants(),
];
Http/Middleware/HandleInertiaRequests.php
public function share(Request $request)
{
return array_merge(parent::share($request), [
'const' => config('const'),
]);
}
resources/js/Pages/Hoge.vue
<template>
<select>
<option v-for="(label, id) in const.hoge.METAVARS" :value="id">{{ label }}</option>
</select>
</template>
<script>
export default {
computed: {
const(){ return this.$attrs.const; }
}
}
</script>
少なくとも、自分が雑に検索して出てきた色々な定数定義ハウツーよりもシンプルでマシだと思うんだけど
もっといい方法あったら教えてください
あと vue3 の setup がまだよくわかってないのでまたこれから勉強します