feat(menu): ensure label column is added only if it doesn't exist and simplify menu update logic
This commit is contained in:
@@ -10,9 +10,11 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
Schema::table('menues', function (Blueprint $table) {
|
if (! Schema::hasColumn('menues', 'label')) {
|
||||||
$table->string('label')->nullable()->after('code');
|
Schema::table('menues', function (Blueprint $table) {
|
||||||
});
|
$table->string('label')->nullable()->after('code');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
$labels = [
|
$labels = [
|
||||||
'index' => 'Inicio',
|
'index' => 'Inicio',
|
||||||
@@ -33,14 +35,12 @@ return new class extends Migration
|
|||||||
DB::table('menues')
|
DB::table('menues')
|
||||||
->select(['id', 'code'])
|
->select(['id', 'code'])
|
||||||
->orderBy('id')
|
->orderBy('id')
|
||||||
->eachById(function ($menus) use ($labels): void {
|
->eachById(function ($menu) use ($labels): void {
|
||||||
foreach ($menus as $menu) {
|
$fallback = Str::headline(Str::afterLast($menu->code, '.'));
|
||||||
$fallback = Str::headline(Str::afterLast($menu->code, '.'));
|
|
||||||
|
|
||||||
DB::table('menues')
|
DB::table('menues')
|
||||||
->where('id', $menu->id)
|
->where('id', $menu->id)
|
||||||
->update(['label' => $labels[$menu->code] ?? $fallback]);
|
->update(['label' => $labels[$menu->code] ?? $fallback]);
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Schema::table('menues', function (Blueprint $table) {
|
Schema::table('menues', function (Blueprint $table) {
|
||||||
|
|||||||
Reference in New Issue
Block a user