Skip to content

Instantly share code, notes, and snippets.

@alexwenzel
Created May 3, 2022 19:06
Show Gist options
  • Select an option

  • Save alexwenzel/4ff4637315972abb426cf110f0050975 to your computer and use it in GitHub Desktop.

Select an option

Save alexwenzel/4ff4637315972abb426cf110f0050975 to your computer and use it in GitHub Desktop.

Revisions

  1. alexwenzel created this gist May 3, 2022.
    63 changes: 63 additions & 0 deletions scratch_9.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,63 @@
    <?php

    use App\Nova\User;
    use Illuminate\Database\Eloquent\Collection;
    use Laravel\Nova\Fields\Select;

    class Bla {
    public function inspectorFields()
    {
    /** @var User $user */
    $user = auth()->user();

    // laravel model muss verknüpft sein
    /** @var Collection $inspectorAreas */
    $inspectorAreas = $user->areas()->get();

    // [
    // 1 => [id=>a,'name' => 'area1'],
    // 2 => [id=>b,'name' => 'area2'],
    // 3 => [id=>c,'name' => 'area3'],
    // 4 => [id=>d,'name' => 'area4'],
    // ]

    // nach map und flatten

    // [
    // a => 'area1',
    // b => 'area2',
    // c => 'area3',
    // d => 'area4',
    // ]

    return [
    Select::make("Wähle eine Area aus, wo der Vorgang stattfindet","area_id")
    ->rules('required')
    ->options($inspectorAreas->map(function ($item, $key) {
    return [$item->id => $item->name];
    })->flatten())
    ->required(true)
    ];
    }
    }

    // im Tool.vue
    //
    //- allg. im Tool.vue die Fields vielleicht manuell aus rendern

    //<!-- area -->
    //<component
    //:is="'form-select"
    // :errors="validationErrorsGeneral"
    // :field="area_id"
    // @change="checkAreas"
    // :showHelpText="true"
    ///>

    //- routine einbauen, dass man erkennt wenn area_id geändert wird
    // - @change="checkAreas"

    //- request an backend controller. welcher zu der area alle streets sucht und zurück gibt
    //- ergebnis in ein data field packen und ein select "street_id" mit dem ergebnis anzeigen
    //