Ich habe eine verschachtelte Suchauswahlkomponente implementiert, indem ich einen Flusseingang mit einer Dropdown-Datei zur Anzeige der Datenbankergebnisse verwendet habe.
@if (!empty($items))
[list] class="absolute z-50 w-full mt-[.3125rem] bg-white dark:bg-zinc-700 border border-zinc-200 dark:border-zinc-600 rounded-lg shadow-xs max-h-[20rem] overflow-y-auto scroll-py-[.3125rem] transition-all"
x-show="open"
x-transition
>
@foreach ($items as $item)
[*] wire:key="{{$item['id']}}"
class="px-[.3125rem] py-[.3125rem] text-sm text-gray-800 dark:text-white hover:bg-gray-100 dark:hover:bg-zinc-700 cursor-pointer transition"
wire:click="select({{ $item['id'] }})"
@click="open = false"
>
{{ $item['name'] }}
@endforeach
[/list]
@endif
< /code>
seine Komponentenklasse: < /p>
class SearchSelect extends Component
{
public string $model;
public string $search_select = '';
public string $initial_string = '';
public string $label = '';
public string $placeholder = '';
public string $error_name = 'id';
public $selectedId = null;
public array $items = [];
public function updatedSearchSelect()
{
$this->loadItems();
}
public function mount(string $model, string $label = '', string $error_name = 'id', string $placeholder = '')
{
$this->model = $model;
$this->label = $label;
$this->placeholder = empty($placeholder) ? __('action.search') : $placeholder;
$this->error_name = $error_name;
$this->search_select = $this->initial_string;
$this->loadItems();
}
public function loadItems(): void
{
$class = app($this->model);
$query = $class::query();
if ($this->search_select) {
$query->where(function ($q) {
// If model is User, allow searching by first/last name
if (Str::contains($this->model, 'User')) {
$q->orWhere('first_name', 'like', "%{$this->search_select}%")
->orWhere('last_name', 'like', "%{$this->search_select}%")
->orWhere('national_id', 'like', "%{$this->search_select}%")
->orWhere('phone', 'like', "%{$this->search_select}%");
}
else
{
$q->where('name', 'like', "%{$this->search_select}%");
}
});
}
$this->items = $query->orderByDesc('id')->limit(10)->get()->map(function ($item) {
return [
'id' => $item->id,
'name' => $this->formatLabel($item)
];
})->toArray();
}
public function select($id): void
{
$this->selectedId = $id;
$this->search_select = $this->formatLabel(app($this->model)::find($id));
$this->dispatch('itemSelected', id: $id, label:$this->search_select);
}
private function formatLabel($item): string
{
if (Str::contains($this->model, 'User')) {
return "{$item->first_name} {$item->last_name}";
}
return $item->name ?? 'Unknown';
}
public function render()
{
return view('livewire.components.search-select');
}
}
< /code>
Auf einer Spielstationenseite in einer Schleife öffnet die "Start" der einzelnen Zeile ein eindeutiges Modal, das diese Suchauswahlkomponente enthält, die so implementiert ist: < /p>
< /code>
Komponentenklasse mit Listener: < /p>
protected $listeners = ['itemSelected'];
public function itemSelected($id, $label): void
{
$this->member_id[] = $id;
$this->searchBoxValue = $label;
}
Nach einer Benutzerauswahl in der Schaltfläche Modal und nachfolgende "Start" wird die Funktion startSession aufgerufen. Ich muss Daten speichern und die Komponente ohne Auffrischung von Seite zurücksetzen. Um die verschachtelte Komponente zu aktualisieren, aktualisiere ich auch ihren Schlüssel: $ this-> searchboxkey = str :: random (10); . Dies führt jedoch zu dem Livewire -Fehler: "Uncornd Snapshot fehlt bei der Livewire -Komponente mit ID: 8TWFVMS3S7stbuyxdvq9".
Ich habe eine verschachtelte Suchauswahlkomponente implementiert, indem ich einen Flusseingang mit einer Dropdown-Datei zur Anzeige der Datenbankergebnisse verwendet habe.[code]
< /code> seine Komponentenklasse: < /p> class SearchSelect extends Component { public string $model; public string $search_select = ''; public string $initial_string = ''; public string $label = ''; public string $placeholder = ''; public string $error_name = 'id'; public $selectedId = null; public array $items = [];
public function updatedSearchSelect() { $this->loadItems(); }
public function select($id): void { $this->selectedId = $id; $this->search_select = $this->formatLabel(app($this->model)::find($id)); $this->dispatch('itemSelected', id: $id, label:$this->search_select); }
private function formatLabel($item): string { if (Str::contains($this->model, 'User')) { return "{$item->first_name} {$item->last_name}"; }
return $item->name ?? 'Unknown'; }
public function render() { return view('livewire.components.search-select'); } } < /code> Auf einer Spielstationenseite in einer Schleife öffnet die "Start" der einzelnen Zeile ein eindeutiges Modal, das diese Suchauswahlkomponente enthält, die so implementiert ist: < /p>
< /code> Komponentenklasse mit Listener: < /p> protected $listeners = ['itemSelected']; public function itemSelected($id, $label): void { $this->member_id[] = $id; $this->searchBoxValue = $label; } [/code] Nach einer Benutzerauswahl in der Schaltfläche Modal und nachfolgende "Start" wird die Funktion startSession aufgerufen. Ich muss Daten speichern und die Komponente ohne Auffrischung von Seite zurücksetzen. Um die verschachtelte Komponente zu aktualisieren, aktualisiere ich auch ihren Schlüssel: $ this-> searchboxkey = str :: random (10); . Dies führt jedoch zu dem Livewire -Fehler: "Uncornd Snapshot fehlt bei der Livewire -Komponente mit ID: 8TWFVMS3S7stbuyxdvq9".
Ich versuche herauszufinden, ob eine bestimmte Datumszeichenfolge alle drei Komponenten enthält: Tag, Monat und Jahr.
Beispieleingaben und erwartete Ausgaben:
Ich habe versucht, Folgendes zu tun.
Ich habe ein Array, nennen wir es „structureArray“. In diesem Array habe ich alle möglichen/erlaubten Felder in der gewünschten Struktur definiert.
Beispiel...
Ich habe versucht, Folgendes zu tun.
Ich habe ein Array, nennen wir es „structureArray“. In diesem Array habe ich alle möglichen/erlaubten Felder in der gewünschten Struktur definiert.
Beispiel...
Ich habe meine Site-PHP-Code umgeschrieben und mySQL gespeicherte Prozeduren hinzugefügt. Fatal Fehler 'Die vorbereitete Anweisung muss erneut vorbereitet werden. Was ist das?