Задать вопрос
  • Как сохранить другую сущность при авторизации?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    В дополнении к тому что написал ThunderCat если не подходит разделение по ролям, вместо связи один-к-одному я бы предложил рассмотреть варианты по поисковому запросу: multiple authentication laravel что бы могла аутентифицироваться сущность User или Doctor.
    Т.к. используя вариант со связью один-к-одному предполагаю что могут быть затруднения с проверками прав в будущем в контроллерах, к примеру маршруты которые доступны только для модели Doctor
    Ответ написан
    Комментировать
  • Как пройти по двум массивам с проверкой на одинаковые ключи (PHP)?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Если я верно понял задачу то один из вариантов такой.
    Если в $arr1 есть ID-шники которых нет в $arr2 то на некоторых элементах HINT не заполним.
    Если в $arr2 есть все ID-шники которые есть в $arr1 и даже больше, то все элементы $arr1 должны будем заполнить;

    Но есть и другой вариант, можно из $arr2 сделать массив где индексы это ID, и тогда можно легко брать значения просто по индексу, типа такого $arr2[$id]
    $arr1 = [
        [
            "ID" => 11,
            "HINT" => "",
        ],
        [
            "ID" => 45,
            "HINT" => "",
        ],
        [
            "ID" => 1,
            "HINT" => "",
        ],
        [
            "ID" => 2,
            "HINT" => "",
        ],
        [
            "ID" => 3,
            "HINT" => "",
        ],
    ];
    
    $arr2 = [
        [
            "PROPERTY_ID" => 11,
            "FILTER_HINT" => "ПОДСКАЗКА-11",
        ],
        [
            "PROPERTY_ID" => 45,
            "FILTER_HINT" => "ПОДСКАЗКА-45",
        ],
        [
            "PROPERTY_ID" => 53,
            "FILTER_HINT" => "",
        ],
    ];
    
    foreach ($arr1 as &$item1) {
        // Берём ID обрабатываемого элемента массива
        $id = $item1["ID"];
        // Проходимся по массиву с ответами и ищем элмент по ID
        foreach ($arr2 as $item2) {
            // Если ID равны запишем данные из FILTER_HINT в HINT элемента
            if ($id == $item2["PROPERTY_ID"]) {
                $item1["HINT"] = $item2["FILTER_HINT"];
                // Завершим цикл по $arr2
                break;
            }
        }
    }
    // Ссылка $item1 на последний элемент массива останется после окончания цикла foreach.
    // Рекомендуется уничтожать её с помощью unset().
    // Подробнее про это и foreach в документации по PHP https://www.php.net/manual/ru/control-structures.foreach.php
    unset($item1);
    
    // Выводим результат
    echo '<pre>';
    var_dump($arr1);
    echo '</pre>';
    Ответ написан
    1 комментарий
  • Иногда форма отправляет данные множество раз. Где ошибка, можете объяснить?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Могу предположить из-за того что пользователь может быстро несколько раз нажать на кнопку "Отправить" в результате будет отправлено несколько ajax запросов.

    Можно попробовать сделать вот так:
    Когда событие "submit" выполнится в первый раз кнопка "Отправить" заблокируется, и если пользователь сразу нажмёт её ещё раз то событие уже не будет запущенно т.к. кнопка будет заблокирована до тех пор пока ajax запрос не завершится. Пример скрипта ниже, я его не проверял, если будите использовать то протестируйте, не ломается ли ничего. На кнопку в html нужно будет добавить класс: btn-form-submit.

    Либо может что-то в php скрипте, или на форме устанавливается несколько событий которое отправляет ajax запрос.

    $(function () {
        $("form[data-ajax]").on("submit", function (e) {
            e.preventDefault();
            var $form = $(this);
            var btn = $form.find(".btn-form-submit");
            // Заблокируем кнопку отправить
            $(btn).prop("disabled", true);
            $form.find(".input--error").removeClass("input--error");
            $.post($form.attr("action"), $form.serialize(), function (json) {
                if (json.result == "error") {
                    for (var x in json.errors) {
                        $form.find('[name="' + x + '"]').addClass("input--error");
                    }
                } else if (json.result == "redirect") {
                    window.location.href = json.url;
                } else {
                    $form.html(json.html);
                }
            }, "json").always(function () {
                if (btn.length) {
                    // Разблокируем кнопку отправить когда ajax запрос завершится будь то успех или ошибка
                    $(btn).prop("disabled", false);
                }
            });
        })
    });

    Небольшой совет, лучше давать обратную связь пользователю, когда он отправил форму показывать какую нибудь загрузку/крутяшку/прилоуд, что бы пользователь понимал что какое-то действие происходит.
    Ответ написан
    2 комментария
  • Верно ли найден ранг матрицы СЛАУ?

    Shlop
    @Shlop Автор вопроса
    Full Stack Developer (PHP/Laravel/JavaScript)
    Я так понял в моей задаче мне нужно добавить ещё нормировочное условие, и при этом одно любое из уравнений можно отбросить, прочитал в книге "Исследование операций. Задачи принципы методология" Е.С. Вентцель (стр. 130).
    Первое уравнение убрал и вместо него записал: p1+p2+p3+p4=1.

    И в результате получил:
    p1 = 0.32
    p2 = 0.32
    p3 = 0.24
    p4 = 0.12
    Ответ написан
    Комментировать
  • Как положить в массив число вместо id?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Если я верно понял, push в массив сделать вот так:
    this.itemsSelected.push(item.id);
    Т.е. пушить в массив не объект а именно id.

    Можно ещё вот так, что бы именно в массив добавилось число типа int (целое число)
    this.itemsSelected.push(parseInt(item.id, 10));
    Лучше тогда вот этот второй вариант использоваться если item.id имеет тип string, что бы id был число
    Ответ написан
    3 комментария
  • Как сверстать такой блок?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Я бы наверно делал вот так (ниже ссылка на codepen). Возможно чем-то поможет.
    По поводу фоновых кружков:
    • Я бы сделал их тегом img (экспорт из граф. редактора в svg) т.е. было бы 3 svg файла
    • Прописал бы им position: absolute;
    • Для картинки с фоновыми кружками сделал бы z-index=1, а для кружка с иконкой z-index=2
    • С помощью top, left, right, bottom картинку с фоновым кружками расположил как требуется

    Ещё обычно на небольшой ширине экрана с такими карточками бывает что заголовок переходит на вторую строку, и получается не ровно. К примеру вот так:
    62dc631128892163095748.png
    Это можно исправить добавив свойство height (высоту) блоку с названием.
    В моём примере на ширине 916px заголовок переходит на вторую строку, я добавил медиа выражение которое на этой ширине делает высоту блокам с названием карточки равную двум строкам, что бы ровно было.

    Ответ написан
    Комментировать
  • Как подключить сайт написанный на html к базе данных mysql?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Для того что бы подключиться к базе данных можно использовать язык программирования PHP.
    На официальном сайте у них есть руководство по данному языку. Можно ещё к примеру в интернете искать/смотреть какие-то статьи/уроки/книги.
    С помощью php можно к примеру:
    • Когда пользователь отправляет форму обратной связи отправить сообщение на почту с данными из полей формы;
    • Сохранять/получать данные из базы данных;
    • Сделать корзину как в интернет магазинах (как вариант с помощью сессии);

    Если вы работаете на Windows то в качестве локального веб сервера можно использовать к примеру
    Open Server на данном локальном сервере можно вести разработку сайтов (скриптов).

    В будущем можно будет ещё посмотреть что такое AJAX, как делать AJAX запросы в javascript.

    Когда уже будет какое-то знание языка программирование и понимание можно будет посмотреть на какую нибудь CMS систему или php framework, потому что писать всё с нуля это может быть долго и трудно.
    А разрабатывая сайты на таких системах есть уже набор каких-то готовых инструментов
    Ответ написан
    Комментировать
  • Почему класс не найден при автозагрузке классов в папке с помощью composer?

    Shlop
    @Shlop Автор вопроса
    Full Stack Developer (PHP/Laravel/JavaScript)
    Попробовал так же в корне всё разместить, теперь вроде работает.
    Только не в index.php всё написал (что бы не редактировать index.php modx) а просто создал тестовый файл qwe.php.

    В нём:
    <?php
    
    include "vendor/autoload.php";
    
    use App\Test;
    
    Test::get();
    Ответ написан
    Комментировать
  • Что за ошибка при выводе status apache2 code=exited status=1/failure?

    Shlop
    @Shlop Автор вопроса
    Full Stack Developer (PHP/Laravel/JavaScript)
    Дауж =)
    А утром уже нет этой ошибки
    Ответ написан
    Комментировать
  • В чём может быть проблема при миграции?

    Shlop
    @Shlop Автор вопроса
    Full Stack Developer (PHP/Laravel/JavaScript)
    Вроде бы решил эту проблему тем что добавил в composer.json следующее:
    "doctrine/common": "2.7.0" и "doctrine/dbal": "2.5.13"
    Ответ написан
    Комментировать
  • Как лучше сверстать галерею изображений разного размера?

    Shlop
    @Shlop Автор вопроса
    Full Stack Developer (PHP/Laravel/JavaScript)
    В общем кажется решил свою проблему, сделал эти две картинки у которых разная высота была когда они рядом стояли друг с другом, одинакового размера, сейчас они - 416x620, в итоге получилось вот что:
    5fe469020a074668817950.png
    И для картинок сделал min-height: 111px; минимальную высоту задал, что бы картинки при уменьшении не становились меньше заданной высоты, правда из за этого свойства пропорции не будут сохраняться но у меня пока что с этим проблем нет
    Ответ написан
    Комментировать
  • Как выровнять по высоте текст?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Здравствуйте, я бы сделал скорее всего вот так,
    Кстати в будущем рекомендую посмотреть методологию БЭМ , тут рассказывается о том как именовать классы, возможно сейчас Вас это только запутает, из за того что Вы только начинаете, поэтому лучше может быть чуть позже посмотреть про БЭМ когда уже научитесь верстать.
    Ответ написан
    Комментировать
  • Как в этот php который генерирует карту сайта добавить lastmod?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Можно вот так попробовать
    $date = date('Y-m-d\TH:i:sP');
    echo "</loc>\n<changefreq>daily</changefreq>\n<priority>1.0</priority>\n<lastmod>{$date}</lastmod>\n</url>";

    Либо без переменной вот так (этот вариант лучше кажется):
    echo "</loc>\n<changefreq>daily</changefreq>\n<priority>1.0</priority>\n<lastmod>".date('Y-m-d\TH:i:sP')."</lastmod>\n</url>";
    Ответ написан
  • HTML5. Правильная семантическая структура для страницы?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Корректность разметки можно кстати проверить с помощью валидатора: https://validator.w3.org/
    Наверно я кстати немного поспешил и нужно уточнить, данный валидатор проверяет синтаксис веб-документов, а не семантическую структуру, подробнее про валидатор можно вот тут посмотреть
    Ответ написан
    Комментировать
  • Как не закончить цикл while?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    let sum = 0;
    let strNumber = 0;
    let number = 0;
    while (strNumber !== null) {
      strNumber = prompt("Введите число:", ""); // Получаем из prompt строку либо число в виде строки, если нажата отмена то вернёт null
      number = Number(strNumber); // Приводим строку к числу, если строка не может быть числом то вернёт NaN см. https://learn.javascript.ru/type-conversions
      sum += (!isNaN(number)) ? number : 0; // Использую isNaN потому что Number.isNaN не будет работать в IE у isNaN есть особености см (https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/isNaN)
    }
    if(sum) {
      alert(sum);
    }
    Ответ написан
    Комментировать
  • Как прибавить к каждому числу определенного класса другое число?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Вот ещё один вариант
    Ответ написан
    Комментировать
  • Почему false срабатывает как true?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Скорее всего из за того что false приходит в виде строки, и условие соответственно выполняется, потому что люба строка это уже true, пробуйте что-то типа такого:
    $.ajax({
    	url: '/action_ajax_form.php',
    	type: "POST",
    	data:  $("#feedback-form_03").serialize(),
    	success: function(response) {
    		if (response !== "false") {
    			console.log(response);
    			console.log('<div id="message_03">Ваше сообщение успешно отправлено. Спасибо!<br />Мы свяжемся с вами ближайшее время!</div>');
    		}
    	}
    }
    })
    Ответ написан
  • Почему после залива скрипта на хостинг не видит индекс файл?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Вроде бы такая же как у вас проблема:
    https://www.zzz.com.ua/forum/-f15/-t1870.html

    Попробуйте на хостинге создать файл .htaccess на одном уровне с папкой public, со следующем содержимым:
    DirectoryIndex /public/index.php
    <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteBase /
       RewriteRule ^\.index\.php$ - [L]
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-l
       RewriteRule . /public/index.php [L]
    </IfModule>
    Ответ написан
    Комментировать
  • Почему после установки laravel, главная страница выводит список файлов?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    В Open Server попробуйте выставить такие вот настройки, а затем нажать кнопку "Сохранить"
    5f786fea3ad38897147786.png
    Ответ написан
    1 комментарий