Столкнулся с проблемой, не работает метод map() с методом paginate() в Laravel Eloquent. Метод map() создает новую коллекцию. Соответственно при попытке использовать его с методом paginate() ничего не получится. Используя map() мы получим коллекцию без пагинации.
В данной статье я подробно и наглядно расскажу как настроить и использовать связку Xdebug + OpenServer + PhpStorm.
Первым делом нужно включить расширение Xdebug в конфигурации PHP. Для этого нужно в OpenServer идем в Дополнительно > Конфигурация > PHP_8.1. Версия PHP у вас может отличаться.
В файле конфигурации нужно найти и раскомментировать строку:
zend_extension = xdebug
После нужно найти секцию [xdebug] и раскомментировать строки:
Теперь переходим к настройке PhpStorm. Комбинацией Ctrl + Alt + S или через File > Settings открываем настройки. Слева выбираем PHP > Debug. В открывшихся настройках снимаем галочки с Force break at first line when no path mapping specified и Force break at first line when a script is outside the project. Порты должны быть 9000 и 9003.
Далее в открытом проекте в правом верхнем углу выбираем Current File > Edit Configurations.
В открывшемся окне нажимаем + и выбираем PHP Remote Debug.
В этом окне нужно выбрать … напротив поля Server.
В очередном открывшемся окне тыкаем + и в полях Name и Host указываем имя нашего хоста и жмем OK.
В предыдущем окне в поле Name для удобства указываем имя нашего хоста. В поле Server выбираем наш созданный хост, а в IDE key пишем PHPSTORM. Жмет OK.
После того, как установили Xdebug helper кликаем по нему правой клавишей и выбираем Параметры.
В открывшихся настройках нас интересует параметр IDE key. Выбираем PhpStorm, т.к. его же мы указали при настройке ранее.
Теперь на странице хоста кликаем по иконке Xdebug helper и выбираем Debug. В моем случае хост будет plastpoliefir.lan. Жук должен загореться зеленым цветом.
В PhpStorm в правом верхнем углу также кликаем по жуку.
Теперь в проекте можно поставить точку остановки и сделать запрос в браузере.
Если все правильно сделали, то наше приложение остановиться в том месте, где мы установили точку остановки.
Так же можно посмотреть содержимое массивов и объектов.
Также в панели отладки можно посмотреть глобальные переменные, консоль, ответ нашего HTTP сервера и многое другое.
На этом настройка связки Xdebug + OpenServer + PhpStorm закончена. Надеюсь данная вам статья была полезна.
В данной статье я расскажу как добавить поле с WYSIWYG редактором CKEditor 4 в Laravel Orchid. В первую очередь нужно установить сам CKEditor. Для этого в консоли выполняем:
npm install ckeditor4
После создаем файл resources\js\controllers\ckeditor_controller.js со следующим содержимым:
Сколько не искал как настроить ZM, чтобы он сам удалял старые записи, так и не смог найти. Пришлось сделать свой костыль на PHP. Скрипт писался исключительно для себя, и не претендует на правильность.
<?php
$servername = ""; // IP адрес MySQL сервера
$database = "zm"; // Имя БД
$username = ""; // Имя пользователя БД
$password = ""; // Пароль пользователя БД
$path = ""; // Путь к папке с записями
$interval = "7"; // Удалять записи старше N дней
// Создаем соединение
$mysqli = new mysqli($servername, $username, $password, $database);
// Получаем записи старше N дней
$result = $mysqli->query('SELECT * FROM `Events` WHERE StartDateTime < (NOW() - INTERVAL '.$interval.' DAY)');
$rows = $result->fetch_all(MYSQLI_ASSOC);
// Форматируем дату
$arrDates = array();
foreach($rows as $row) {
$date = explode(' ', $row['StartDateTime'])[0];
array_push($arrDates, $date);
}
// Удаляем дубликаты дат
$arrDates = array_unique($arrDates);
// Удаляем папки старше N дней
foreach($arrDates as $date) {
// Удаление для каждого монитора отдельно
exec('rm -R '.$path.'5/'.$date);
exec('rm -R '.$path.'6/'.$date);
}
// Удаляем записи старше N дней
$mysqli->query('DELETE FROM `Events` WHERE StartDateTime < (NOW() - INTERVAL '.$interval.' DAY)');
// Закрываем соединение
$mysqli->close();
Скрипт запускается командой php script.php из консоли и может быть добавлен в cron.