Задать вопрос
  • Laracasts - оно того стоит?

    Decadal
    @Decadal
    Какая разница, каким путём знания зашли в голову? Если вам лучше видосики - смотрите видосики
    Ответ написан
    1 комментарий
  • Нормально ли в api возвращать редирект?

    1 вариант
    Ответ написан
    Комментировать
  • Chart with Axios?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Как можно с помощью axios подставить данные в массив chart?

    Это в принципе невозможно, axios - для выполнения запросов, а не работы с массивами.

    Разумеется, вы имели в виду кое-что другое, и даже понятно, что именно. Но учитывая фантастически ублюдочную формулировку вопроса, иного ответа вы не заслуживаете. Под ублюдочной формулировкой я имею в виду не только непонимание, о чём вы сами же и спрашиваете, но также и почти полное отсутствие какой-либо конкретики. А именно:

    Не сказано ни слова о графике, что он отображает.

    Получение данных для графика осуществляется будто бы с помощью axios - но единственный показанный запрос про другое, там идёт получение данных для выпадающего списка. То есть, должен быть ещё какой-то запрос. Какой? - url, параметры, структура ответа - ничего не известно.

    Далее, "подставить данные" вы планируете в "массив chart" - но как следует из показанного огрызка кода, такого массива нет. Есть chartData. Это он? Или какой-то другой массив? Не знаю что и думать. Что до собственно "подставить" - у массивов есть метод push, неужели вы про него не слышали? Если не слышали - разговаривать тут не о чем, идите учить язык. А где-нибудь через полгодика, не раньше, можно будет и в сторону vue попробовать посмотреть. Если слышали - очевидно, сам по себе push проблемой быть не может, придётся констатировать, что о сути своих затруднений вы решили попросту умолчать.

    Компонент line-chart, который, надо полагать, ответственен за построение графика - что это такое? Едва ли вы его написали сами - это или сторонний компонент, или обёртка над сторонним компонентом. Почему нет ссылки на документацию/github/...? - насколько я понял, график успешно строится, но надо динамически докидывать в него данные, так что сведения о компоненте графика пришлись бы очень кстати. Отслеживает ли он изменения своих параметров? Или может у него есть метод, позволяющий принудительно обновить свой внешний вид? Но нет - и тут никакой информации.

    Вот так.

    UPD. Вынесено из комментариев:

    График строится библиотекой chartkick.js

    есть запрос <...> необходимо подставить значения получаемых менеджеров в имена chartData. То есть в chartData:[{name:[сюда]}]

    Понятно.

    Не надо ничего "подставлять". Делаем отдельные свойства name и data, а chartData будет вычисляемым, причём собирать массив надо только в том случае, когда и name и data будут получены:

    computed: {
      chartData() {
        const { names, data } = this;
        return names && data && data.map((n, i) => ({
          name: names[i],
          data: n,
        }));
      },
    },

    Соответственно, график создаётся только в том случае, если удалось собрать chartData:

    <line-chart v-if="chartData" :data="chartData"></line-chart>

    https://jsfiddle.net/t5dovxL4/
    Ответ написан
    1 комментарий
  • Зачем нужен бэкенд, если можно создавать полноценные приложения на frontend фреймворках?

    @deliro
    Может быть, не знаю, что за панацея — этот всеми любимый Firebase, но как, допустим, на нём валидировать данные помимо валидации на клиенте? И я прошу учесть, что клиент никогда не является секьюрной стороной и всегда может подменить запрос, изменить код приложения и вообще отправлять запросы в обход фронтенда.

    Я представляю, как сделать на нём простейший CRUD, где юзеру будут доступны только его записи. А онлайн-банкинг получится? А как насчёт очереди заданий? Сделай мне без бэкенда простейший сервис, который меняет формат фильма и меняет его размер/аспект. Ну чтобы на ffmpeg, все дела. И естественно клиенту нельзя не отдавать ответ, пока не отрендерится весь фильм, надо делать это асинхронно. Или сделай мне приложение, куда я вкину исходники на Си/Go, выберу компилятор, а приложение отправит мне обратно бинарник скомпиленный. А вот ещё, смотри, придумал. А сделай мне систему, такую же, как Sentry, чтобы туда можно было спамить ошибками, а она мне на Vue.js на фронте выводила красивые графики всякие, ну ты знаешь. Или напиши мне телеграм-бота без бэкенда. А как насчёт логов? Например, я хакер и отправляю запросы через curl. У тебя будут логироваться они?
    Ответ написан
    Комментировать
  • Можно ли упростить данный код?

    Mesuti
    @Mesuti
    Если код работает, то лучше его не трогать)
    Ответ написан
    Комментировать
  • Как получить список всех пользователей, кто писал комментарий к статье?

    @windsteppy
    Trainee разработчик
    Для начала - структура базы данных:
    Comment (article_id, id, text, user_id)
    Article (id, text, user_id)
    User (id, name)


    Теперь модели:
    Article.php
    public function comments(){
    return $this->hasMany(Comment::class);
    }
    public function author(){
    return $this->belongsTo(User::class);
    }
    public function commetators(){
    return $this->hasManyThrough(User::class, Comment::class);

    Comment.php
    public function article(){
    return $this->belongsTo(Article::class);
    }
    public function user(){
    return $this->belongsTo(User::class);
    }


    Код для поиска всех пользователей, кто писал комментарии к статье.
    $users = Article::find(1)->commentators;
    Ответ написан
    Комментировать
  • Как узнать процент оставшего времени?

    @choupa
    Архитектор (обычный, который строит)
    У меня разрыв шаблона. Неужели человек с таким знанием арифметики программирует на PHP?!

    $interval = $end_time - $start_time;
    $time = time() - $start_time;
    echo "прошло: ".round( 100 * $time / $interval )."%<br>";
    echo "осталось: ".round( 100 - 100 * $time / $interval )."%<br>";
    Ответ написан
    Комментировать
  • Есть ли официальная документация по JavaScript?

    Stalker_RED
    @Stalker_RED
    Javascript - это одна из реализаций ECMA-262. Если вам нужно именно "официально-стандартно" - вам именно сюда.
    Обратите внимание, это девятая редакция, которая вышла в июле. В следующем году скорее всего выйдет новая редакция. Ну и в этом СТАНДАРТЕ вы не найдете всяких новых экспериментальных штук. Экспериментальные штуки обычно описаны в черновиках.

    BOM и DOM - это на самом деле не часть javascript, это API браузеров.

    В 99% случаев вам будет удобнее всего ориентироваться на MDN, там все неплохо структурировано, и поддерживается в довольно актуальном состоянии.
    Ответ написан
    1 комментарий
  • Как из массива php сделать массив javascript?

    @kirill-93
    Конвертируете php массив в json (json_encode($array))
    Конвертируете на стороне javascript в массив из json (JSON.parse())
    Ответ написан
    Комментировать
  • Как из массива php сделать массив javascript?

    @Arik
    1. Приводим исходный массив к нужному виду на уровне php

    2. Отправляем в js
    var groups = <?= json_encode($phpArray) ?>;
    Ответ написан
    Комментировать
  • Что значит "базовые знания Python"?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    - Какое у вас образование?
    - Я закончил колледжи Оксфордского и Кембриджского университетов
    - Запишите: призывник умеет читать и писать...


    должен суметь чОтко обосновать за табы или пробелы
    Ответ написан
    Комментировать
  • Как правильно возвращать ошибки в своем API, Laravel?

    могу вручную делать return в каждом методе своего API, но это не выглядит правильным

    Почему? Это нормальная практика. Каждый метод - это часть контроллера, а контроллер должен возвращать ответ. Ответ в Laravel должен быть инстансом Response (массив автоматически конвертируется в него).

    если структура изменится, мне придется менять весь свой код

    Для таких случаев Лара предоставляет возможность создать свой собственный тип ответа, например, ApiResponse. Соответственно, после создания будете вызывать в коде как-то так:
    return response()->api($code, $data);
    Все форматирование будете делать в классе ApiResponse.

    Собственно, чтобы создать, регистрируете в сервис-провайдере новый тип response.
    Response::macro('api', function ($code, $data) {
        return new ApiResponse($code, $data);
    });
    Ответ написан
    3 комментария
  • Таблица под highload?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Добавляете данные ОДНОВРЕМЕННО сразу в 2-е таблицы: в одну общую историческую таблицу (или можно создавать новую таблицу раз в месяц, пол-года, год) и в таблицу за последний короткий промежуток времени (например, за месяц).
    2. Раз в сколько там хотите удаляйте устаревшие данные из таблицы короткого периода: "подрезайте хвост" после сортировки по timestamp-полю.

    Таким образом, будет возможность оперативной работы со свежими данными и более длительной работы с архивными данными.

    UPD:
    100 млн. записей из них надо проверить заходил ли сегодня уже пользователь или нет. То есть эту задачу надо выполнить как можно быстрее, чтобы дальше определить, что делать с ним.
    Банально: LastLogon (timestamp) в одном из полей таблицы пользователей.
    Ответ написан
    Комментировать
  • Как реализовать вывод данные с конфига в переменные?

    @AlexndrNovikov
    Solution Architect in Spiral Scout
    В cfg.php делать

    return $cfg = ['name' => 'demo']

    В другом файле

    $file = include(dir. '/cfg.php');
    var_dump($file['name']);


    Если очень хочется использовать именно file_get_contents, то в cfg.php лучше хранить

    {"name":"demo"}

    а работать с этим так:

    $file = file_get_contents(dir. '/cfg.php');
    $file = json_decode($file, true);
    var_dump($file['name'])
    Ответ написан
    Комментировать
  • Share в соц сетях?

    Я использую для таких целей https://github.com/declandewet/vue-meta
    Ответ написан
    Комментировать
  • Есть ли инструмент похожий на swagger но для graphql?

    @joniks
    Вебмастер
    Там же встроенный инструмент graphiql. Свагер не имеет смысл использовать тк в Graphql обычно два ендпоинта, один на сами запросы, другой graphiql, где автоматом генерируется все доки по запросам и мутациям и еще есть песочница.
    Ответ написан
    Комментировать
  • Как работать с фронтендом в Laravel Mix?

    modestguy
    @modestguy
    full-stack web developer
    Можно mix.styles заиспользовать, после того, как обработаете saas. Тогда mix всё объединит в один итоговый файлик.

    mix.styles([
            "libs/bootstrap4/css/bootstrap.css",
            "libs/font-awesome/css/font-awesome.css",
            "css/domain.css"
        ],
        'public/css/app.css',
        'resources/assets');
    Ответ написан
    5 комментариев
  • Как правильно именовать таблицу для третьего уровня вложенности?

    longclaps
    @longclaps
    Вот кусочек учебной базы данных.
    CREATE TABLE aircrafts (
        aircraft_code character(3) NOT NULL,
        model text NOT NULL,
        range integer NOT NULL,
        CONSTRAINT aircrafts_range_check CHECK ((range > 0))
    );
    COMMENT ON TABLE aircrafts IS 'Самолеты';
    COMMENT ON COLUMN aircrafts.aircraft_code IS 'Код самолета, IATA';
    COMMENT ON COLUMN aircrafts.model IS 'Модель самолета';
    COMMENT ON COLUMN aircrafts.range IS 'Максимальная дальность полета, км';

    Так понятно?
    Ответ написан
    Комментировать
  • В чем суть SPA?

    @marsdenden
    Суть в том, что вместо перехода по ссылкам и загрузки новой страницы при каждом клике по ссылке происходит подгрузка некоторых данных через тот же axios во vue. И тот же vue отвечает за отображение этих данных. То есть SPA - это самое что ни на есть разделение на бэкенд и фронтенд - серверную и клиентскую часть. Ничего сложного.
    SPA - single page application, то есть одностраничное приложение. Загрузка страницы происходит один раз, а дальше - запрос-ответ. Благодаря этой схеме при первоначальной загрузке грузятся все стили и скрипты (которые уже содержат шаблоны в себе) и дальнейший обмен с сервером получается достаточно экономичным с точки зрения трафика, что положительно влияет на загрузку сервера и скорость получения данных.
    Ответ написан
    7 комментариев