Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Laravel » Не могу сделать модальное окно (Livewire 4.4.0) » 18.08.2026 21:51:47

fenix_63
Ответов: 0

Не могу сделать модальное окно (Livewire).

Всем привет! Делаю pet-проект учебный для себя. Хочу чтоб по клику на кнопку появлялось бы модальное окно. Прочитал что для этого подойдёт Livewire. Композером скачал его, пробую делать так, как написано в документации:

Файл, где расположена кнопка, при клике на которую нужно чтоб появлялось модальное окно:

resources/views/admin.blade.php:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.5">
    <title>Админ-панель · Управление постами</title>
    <!-- Font Awesome 6 (Free) для иконок -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
	
</head>

<div class="admin-wrapper">

    <!-- ШАПКА -->
    <header class="admin-header">
        <h1>
            <i class="fas fa-pen-fancy"></i>
            Управление постами
        </h1>
        <div class="header-actions">
            <button class="btn btn-outline"><i class="fas fa-file-export"></i> Экспорт</button>
            <button class="btn btn-primary"><i class="fas fa-plus-circle"></i> Создать пост</button>
			
			
            <!-- Используйте компонент -->
            <livewire:modal-component />
        </div>
    </header>
	
	...
</div>

Файл с классом компонента app/Livewire/ModalComponent.php:

<?php

namespace App\Livewire;

use Livewire\Component;

class ModalComponent extends Component
{
	public bool $showModal = false;

	public function render()
	{
		return view('livewire.modal-component');
	}

	public function openModal()
	{
		$this->showModal = true;
	}

	public function closeModal()
	{
		$this->showModal = false;
	}
}

Файл с версткой (шаблоном) модального окна  resources/views/livewire/⚡modal-component.blade.php:

<div>
    <!-- Кнопка для открытия модального окна -->
    <button wire:click="openModal" class="btn btn-primary">
        <i class="fas fa-plus-circle"></i> Добавить пост
    </button>

    <!-- Модальное окно -->
    @if($showModal)
    <div class="modal-overlay" wire:click.self="closeModal">
        <div class="modal-content">
            <div class="modal-header">
                <h3>Создание поста</h3>
                <button wire:click="closeModal" class="close-btn">&times;</button>
            </div>
            <div class="modal-body">
                <!-- Содержимое модального окна -->
                <form>
                    <div class="form-group">
                        <label>Заголовок</label>
                        <input type="text" class="form-control" placeholder="Введите заголовок">
                    </div>
                    <div class="form-group">
                        <label>Содержание</label>
                        <textarea class="form-control" rows="5"></textarea>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button wire:click="closeModal" class="btn btn-secondary">Отмена</button>
                <button class="btn btn-primary">Сохранить</button>
            </div>
        </div>
    </div>
    @endif
</div>

Laravel 12 версии. Livewire 4.4.0

Когда в браузере открываю страницу http://localhost:8000/admin  Laravel выдаёт ошибку:

InvalidArgumentException
vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php:138
View [livewire.modal-component] not found

Типо компонент не наёден. Я уже голову сломал - не понимаю почему он не может найти шаблон. Подскажите, как это исправить?

#2 Laravel » Не могу сделать модальное окно (Livewire 4.4.0) » 18.08.2026 21:51:25

fenix_63
Ответов: 0

Не могу сделать модальное окно (Livewire).

Всем привет! Делаю pet-проект учебный для себя. Хочу чтоб по клику на кнопку появлялось бы модальное окно. Прочитал что для этого подойдёт Livewire. Композером скачал его, пробую делать так, как написано в документации:

Файл, где расположена кнопка, при клике на которую нужно чтоб появлялось модальное окно:

resources/views/admin.blade.php:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.5">
    <title>Админ-панель · Управление постами</title>
    <!-- Font Awesome 6 (Free) для иконок -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
	
</head>

<div class="admin-wrapper">

    <!-- ШАПКА -->
    <header class="admin-header">
        <h1>
            <i class="fas fa-pen-fancy"></i>
            Управление постами
        </h1>
        <div class="header-actions">
            <button class="btn btn-outline"><i class="fas fa-file-export"></i> Экспорт</button>
            <button class="btn btn-primary"><i class="fas fa-plus-circle"></i> Создать пост</button>
			
			
            <!-- Используйте компонент -->
            <livewire:modal-component />
        </div>
    </header>
	
	...
</div>

Файл с классом компонента app/Livewire/ModalComponent.php:

<?php

namespace App\Livewire;

use Livewire\Component;

class ModalComponent extends Component
{
	public bool $showModal = false;

	public function render()
	{
		return view('livewire.modal-component');
	}

	public function openModal()
	{
		$this->showModal = true;
	}

	public function closeModal()
	{
		$this->showModal = false;
	}
}

Файл с версткой (шаблоном) модального окна  resources/views/livewire/⚡modal-component.blade.php:

<div>
    <!-- Кнопка для открытия модального окна -->
    <button wire:click="openModal" class="btn btn-primary">
        <i class="fas fa-plus-circle"></i> Добавить пост
    </button>

    <!-- Модальное окно -->
    @if($showModal)
    <div class="modal-overlay" wire:click.self="closeModal">
        <div class="modal-content">
            <div class="modal-header">
                <h3>Создание поста</h3>
                <button wire:click="closeModal" class="close-btn">&times;</button>
            </div>
            <div class="modal-body">
                <!-- Содержимое модального окна -->
                <form>
                    <div class="form-group">
                        <label>Заголовок</label>
                        <input type="text" class="form-control" placeholder="Введите заголовок">
                    </div>
                    <div class="form-group">
                        <label>Содержание</label>
                        <textarea class="form-control" rows="5"></textarea>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button wire:click="closeModal" class="btn btn-secondary">Отмена</button>
                <button class="btn btn-primary">Сохранить</button>
            </div>
        </div>
    </div>
    @endif
</div>

Laravel 12 версии. Livewire 4.4.0

Когда в браузере открываю страницу http://localhost:8000/admin  Laravel выдаёт ошибку:

InvalidArgumentException
vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php:138
View [livewire.modal-component] not found

Типо компонент не наёден. Я уже голову сломал - не понимаю почему он не может найти шаблон. Подскажите, как это исправить?

#3 Laravel » Не могу сделать модальное окно (Livewire 4.4.0) » 18.08.2026 21:50:53

fenix_63
Ответов: 0

Не могу сделать модальное окно (Livewire).

Всем привет! Делаю pet-проект учебный для себя. Хочу чтоб по клику на кнопку появлялось бы модальное окно. Прочитал что для этого подойдёт Livewire. Композером скачал его, пробую делать так, как написано в документации:

Файл, где расположена кнопка, при клике на которую нужно чтоб появлялось модальное окно:

resources/views/admin.blade.php:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.5">
    <title>Админ-панель · Управление постами</title>
    <!-- Font Awesome 6 (Free) для иконок -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
	
</head>

<div class="admin-wrapper">

    <!-- ШАПКА -->
    <header class="admin-header">
        <h1>
            <i class="fas fa-pen-fancy"></i>
            Управление постами
        </h1>
        <div class="header-actions">
            <button class="btn btn-outline"><i class="fas fa-file-export"></i> Экспорт</button>
            <button class="btn btn-primary"><i class="fas fa-plus-circle"></i> Создать пост</button>
			
			
            <!-- Используйте компонент -->
            <livewire:modal-component />
        </div>
    </header>
	
	...
</div>

Файл с классом компонента app/Livewire/ModalComponent.php:

<?php

namespace App\Livewire;

use Livewire\Component;

class ModalComponent extends Component
{
	public bool $showModal = false;

	public function render()
	{
		return view('livewire.modal-component');
	}

	public function openModal()
	{
		$this->showModal = true;
	}

	public function closeModal()
	{
		$this->showModal = false;
	}
}

Файл с версткой (шаблоном) модального окна  resources/views/livewire/⚡modal-component.blade.php:

<div>
    <!-- Кнопка для открытия модального окна -->
    <button wire:click="openModal" class="btn btn-primary">
        <i class="fas fa-plus-circle"></i> Добавить пост
    </button>

    <!-- Модальное окно -->
    @if($showModal)
    <div class="modal-overlay" wire:click.self="closeModal">
        <div class="modal-content">
            <div class="modal-header">
                <h3>Создание поста</h3>
                <button wire:click="closeModal" class="close-btn">&times;</button>
            </div>
            <div class="modal-body">
                <!-- Содержимое модального окна -->
                <form>
                    <div class="form-group">
                        <label>Заголовок</label>
                        <input type="text" class="form-control" placeholder="Введите заголовок">
                    </div>
                    <div class="form-group">
                        <label>Содержание</label>
                        <textarea class="form-control" rows="5"></textarea>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button wire:click="closeModal" class="btn btn-secondary">Отмена</button>
                <button class="btn btn-primary">Сохранить</button>
            </div>
        </div>
    </div>
    @endif
</div>

Laravel 12 версии. Livewire 4.4.0

Когда в браузере открываю страницу http://localhost:8000/admin  Laravel выдаёт ошибку:

InvalidArgumentException
vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php:138
View [livewire.modal-component] not found

Типо компонент не наёден. Я уже голову сломал - не понимаю почему он не может найти шаблон. Подскажите, как это исправить?

#4 Laravel 6/7/8/9/10/11 » Не устанавливается Laravel Breeze » 13.07.2026 19:36:57

fenix_63
Ответов: 0

Всем добрый день!

Только недавно начал изучать Laravel, и в качестве практики у меня сейчас есть задача сделать страницу авторизации. Самую простенькую
Хочу установить себе Laravel breeze.

Сам проект работает из под Docker desktop. Composer в нём - в отдельном контейнере

Пробую запустить команду composer require laravel/breeze - всё нормально скачалось

Далее перехожу в контейнер, где у меня работает artisan, вбиваю команду

php artisan breeze:install

Но в ответ получаю:

ERROR  There are no commands defined in the "breeze" namespace.

Подскажите, что я делаю не так? Как это лечится?

#5 Laravel 6/7/8/9/10/11 » Laravel 12 не накатывается миграция » 02.07.2026 10:24:10

fenix_63
Ответов: 1

Всем привет! Только недавно начал изучать Laravel. Пробую накатить миграцию, php artisan выдаёт ошибку:

Illuminate\Database\QueryException

  SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for mysql failed:   
.  (Connection: mysql, Host: mysql, Port: 3306, Database: laravel_db, SQL: select exists (select 1
from information_schema.tables where table_schema = schema() and table_name = 'migrations' and table
_type in ('BASE TABLE', 'SYSTEM VERSIONED')) as `exists`)

Команда:

php artisan migrate --path=\\database\\migrations\\2026_07_01_190012_create_posts_table.php

Запускал из под windows 11.

Содержимое самого файла миграции 2026_07_01_190012_create_posts_table.php:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('posts', function (Blueprint $table) {
			$table->bigInteger('id')->primary()->autoIncrement();
			$table->bigInteger('post_id');
			$table->bigInteger('user_id');
			$table->string('title');
			$table->text('content')->nullable(false);//NOT NULL
			$table->enum('status',['draft', 'published', 'archived'])->default('published');
			$table->integer('views_count')->default(0);
			$table->integer('likes_count')->default(0);
			$table->timestamp('created_at')->useCurrent();
			$table->timestamp('updated_at')->useCurrent()->useCurrentOnUpdate();
			$table->index(['user_id'],'idx_user_id');
			$table->index(['created_at'],'idx_created_at');
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('posts');
    }
};

Подскажите, что я делаю не так? Что подправить, чтоб миграция нормально накатилась? Пробовал также накатывать другие миграции - тоже самое. Но с получением данных по API проблем нет. Не понимаю почему ругается на подключение к БД.

Подвал раздела