Skip to content

Instantly share code, notes, and snippets.

@alexwenzel
Created May 3, 2022 19:06
Show Gist options
  • Save alexwenzel/4ff4637315972abb426cf110f0050975 to your computer and use it in GitHub Desktop.
Save alexwenzel/4ff4637315972abb426cf110f0050975 to your computer and use it in GitHub Desktop.
Auftragserfassung: Inspector
<?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
//
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment