Laravel по-русски
Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Не могу сделать модальное окно (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">×</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Типо компонент не наёден. Я уже голову сломал - не понимаю почему он не может найти шаблон. Подскажите, как это исправить?
Не могу сделать модальное окно (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">×</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Типо компонент не наёден. Я уже голову сломал - не понимаю почему он не может найти шаблон. Подскажите, как это исправить?
Не могу сделать модальное окно (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">×</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Типо компонент не наёден. Я уже голову сломал - не понимаю почему он не может найти шаблон. Подскажите, как это исправить?
Всем добрый день!
Только недавно начал изучать 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.Подскажите, что я делаю не так? Как это лечится?
Всем привет! Только недавно начал изучать 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 проблем нет. Не понимаю почему ругается на подключение к БД.
Страницы 1