Как реализовать сложную многомодельную CRUD в Livewire для внешнего интерфейса

Я хочу добавить сообщение в laravel livewire, которое должно выглядеть так: если категории не находятся в раскрывающемся списке, тогда должна быть создана категория с таким именем, аналогично для тегов, я новичок в livewire, пожалуйста, помогите мне, как добиться этого без загрузки страницы. при окончательной подаче.

я пытался

function mount(){
$this->categories= Categories::all();
$this->category = $this->article->category;
$this->post_tags = $this->article->tags;
$this->tags = Tags::all();
-------
--------
--------
}

function store(){
    $this->article->description = $this->description;
----
----
----
}

Но я не получаю категории и теги в метод хранилища с помощью «$this->category» и «$this->post_tags» при изменении формы. это возвращает только ноль или при редактировании старых значений из базы данных, а не значений формы

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы получить значение раскрывающегося списка в livewire, вам нужно будет изменить выбор, включив wire:model, и добавить общедоступное свойство в класс.

Далее вы можете использовать метод «Коллекции Laravel» ::contains, чтобы проверить, существует ли категория, или создать ее.

Должно выглядеть примерно так:

new class extends Component
{
    public ?Collection $categories = null;
    public string $category = '';
    ...

    public function mount() {
        $this->categories = Categories::all();
    }

    public function store() {
        if (!$this->categories::contains($this->category)) {
            // Category does not exist, create
            ...
        }
    }
}
...
<div>
    <select id = "category" wire:model = "category"...>
        ...
    </select>
</div>

Спасибо! - применил и этот способ сработал. еще раз спасибо!!

Ashok Kumar Pachauri 16.05.2024 18:10

Другие вопросы по теме