• Почему выходит огромная ошибка в консоли, хотя скрипт работает?

    kulakoff
    @kulakoff Куратор тега Vue.js
    Vue.js developing
    В ворнинге вроде ясно написано, что не стоит в шаблоне использовать тэг скрипт так для избежания нежелательных эффектов он не будет париться.
    Ответ написан
    2 комментария
  • General error: 1215 Cannot add foreign key constraint Laravel 5.3?

    ironfrol
    @ironfrol
    С Laravel 5.8 поменялся метод автоинкремента (id). было
    $table->increments('id')
    А сейчас:
    $table->bigIncrements('id')
    Следовательно, делайте привязку на bigInteger
    $table->bigInteger('user_id')->unsigned();
    $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
    Ответ написан
    6 комментариев
  • Передать переменную от дочернего компонента к родительскому?

    rshaibakov
    @rshaibakov
    Web-разработчик
    У вас верное направление. Именно такой подход одностороннего байндинга и требует Vue.js. В таком случае вы всегда контролируете входные и выходные параметры.
    Ответ написан
    2 комментария
  • Как соблюсти принцип последней буквы SOLID?

    @Wentixon
    Во-первых, я советую тебе не заниматься херней, проходя всякие тупые курсы и делая свои велосипеды. Поверь, эти курсы тебя ничему хорошему не научат, я сам это все прошел - толку ровно ноль. У тебя все равно ничего хорошего не получится, так как лучшие разработчики годами оттачивают свои фреймворки, при чем заимствуя фишки друг у друга (речь идет о популярных фреймворках).

    Во-вторых, если все же у тебя шило в попе, хочется какую то херню погородить, то умные люди придумали некоторые стандарты. Условным стандартом в php являются компоненты с самого качественного фреймворка symfony, на которых кстати основан также laravel. Вот компонент роутера например. Популярные фреймворки состоят из таких мелких независимых компонентов.

    В-третьих, на будущее.. Прежде чем что то делать, посмотри как это сделано у других. Компонент роута я тебе дал, хочешь свой пилить (хотя это абсолютно бессмысленно), то пожалуйста, но лучше ты 100% не сделаешь, так что просто посмотри как сделано у них хотя бы.

    Ну а теперь отвечу на твой вопрос. Контроллеры привязываются к роутеру извне, так что внутри никаких привязок не будет. И вообще, тут не стоит говорить о SOLID, так как это этап загрузки приложения. Никто не может быть уверенным, что такой контроллер вообще найдется и в нем будет присутствовать такой метод, так что в этом случае просто будет исключение.

    Кстати можешь посмотреть эти курсы, самое толковое из того что есть
    Ответ написан
    64 комментария
  • Как сделать так чтобы CTRL+C/CTRL+V в Mac OS X работали аналогично cmd+v/cmd+с?

    iStyx
    @iStyx
    Системные настройки — Клавиатура — Сочетания клавиш
    Нажимаем "+", в «Программа» выбираем «Все программы», в «Название меню» вводим «Копировать», в «Сочетание клавиш» — нажимаем Ctrl+C. Аналогичным образом повторить для Ctrl+V.
    Ответ написан
    3 комментария
  • Отправка данных в POST на vue + axios?

    lavezzi1
    @lavezzi1
    const str = JSON.stringify(this.postBody);
    axios.post('http://localhost:8081/', str)
      .then((response) => {
        console.log(response);
      })
      .catch((error) => {
        console.log(error);
      });


    Ошибка то у вас какая?
    Ответ написан
    6 комментариев
  • Удаленная работа с Европой/Америкой Ваш опыт?

    neochar
    @neochar
    PHP vs Python
    Нашёл заказчика из Европы через биржу. Работем три года.
    Зп действительно выше, но далеко не самолёт, есть куда расти и сейчас ощущается острая потребность, хотя сначала было клёво, особенно когда доллар резко вырос. Да, ставка у заказчика тоже растёт примерно раз в год-полтора.
    Конкретно насчёт мидлов-сеньоров не могу сказать - всё индивидуально. Но смысл искать удачу на западе, я думаю, есть в любом случае.
    Ответ написан
    Комментировать
  • Удаленная работа с Европой/Америкой Ваш опыт?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    Уже года 4 как не работаю с СНГ вообще (с момента, как рубль просел в два раза).
    За это время был положительный опыт со следующими странами: Австралия, США, Канада, Израиль, Норвегия и даже Вьетнам и Чили.
    Ставки на западе на порядок выше наших, причём они не считают, что если они платят вам много, то они имеют право выжать из вас все соки.
    Лично я неплохо знаю рынок PHP. Если в России в среднем PHP'шник получает 50,000-150,000 руб ($5 - $15/час), то за рубежом миддл может спокойно иметь $20-30/час. Сеньор имеет $30-60/час. В России такие суммы даже страшно вслух назвать - не поверят.

    Конечно, чем ниже ваша квалификация, тем выше конкуренция, тем больше демпинг и тем сложнее пробиться в целом. Ниже миддла я бы не советовал соваться по фриланс.
    Ответ написан
    4 комментария
  • Удаленная работа с Европой/Америкой Ваш опыт?

    vicodin
    @vicodin
    Имею некоторый опыт
    Западные компании платят в 3-5-10 раз больше. В среднем US > EU.
    Начиная с уровня Junior, если знаешь английский язык.
    Особенности работы - клиенты более корректные и деловые, когда работаешь с ними, возникает скорее ощущение партнёрства, нежели иерархии.
    Ответ написан
    Комментировать
  • Как убрать постоянное индексирование node_modules у PhpStorm?

    CMD+, (настройки) -> Editor -> File Types -> внизу:

    Ignore files and folders


    Нужно через точку с запятой добавить:

    node_modules;
    Ответ написан
    Комментировать
  • Как работать с датой в Laravel?

    Denormalization
    @Denormalization
    В Laravel у Model есть protected переменная $dates.

    Все поля БД записанные в эту переменную автоматически конвертируются в инстанс Carbon\Carbon, и дальше с ними можно работать просто:

    <?php
    
    class MyModel extends Model {
      protected $dates = ['signed_at'];
    }
    
    // ....
    
    $model = MyModel::first();
    echo $model->signed_at->format('d.m.Y H:i:s');


    Подробнее тут
    Ответ написан
    1 комментарий
  • Как правильно создать кнопку "поделиться" в facebook?

    Адрес нужно указывать. В вашем примере, вместо адреса передается текст "URL".

    Можно сделать передачу параметров через объект, для гибкости:
    Share = {
      getParams: function(params) {
        // используем полученные параметры, 
        // либо создаем пустой объект, чтобы не было ошибок
        params = params || {};
        // в качестве url используем params.url,
        // либо адрес текущей страницы (window.location.href), если params.url не указан
        params.url = params.url || window.location.href;
        // используем params.title, либо заголовок документа
        params.title = params.title || document.title;
        // и т.п.
        params.description = params.description || '';
        params.img = params.img || '';
    
        return params;
      },
    
      vkontakte: function(params) {
        params = Share.getParams(params);
        url = 'http://vkontakte.ru/share.php?';
        url += 'url=' + encodeURIComponent(params.url);
        url += '&title=' + encodeURIComponent(params.title);
        url += '&description=' + encodeURIComponent(params.description);
        url += '&image=' + encodeURIComponent(params.img);
        url += '&noparse=true';
        Share.popup(url);
      },
    
      facebook: function(params) {
      	params = Share.getParams(params);
        url = 'http://www.facebook.com/sharer.php?s=100';
        url += '&p[title]=' + encodeURIComponent(params.title);
        url += '&p[summary]=' + encodeURIComponent(params.description);
        url += '&p[url]=' + encodeURIComponent(params.url);
        url += '&p[images][0]=' + encodeURIComponent(params.img);
        Share.popup(url);
      },
    
      twitter: function(params) {
        params = Share.getParams(params);
        url = 'http://twitter.com/share?';
        url += 'text=' + encodeURIComponent(params.description);
        url += '&url=' + encodeURIComponent(params.img);
        url += '&counturl=' + encodeURIComponent(params.img);
        Share.popup(url);
      },
    
      popup: function(url) {
        window.open(url, '', 'toolbar=0,status=0,width=626,height=436');
      }
    };

    <span title="Поделиться в Facebook">
      <a onclick="Share.facebook({url: 'https://toster.ru/q/294480'})">
        <i class="facebook square icon">Facebook</i>
      </a>
    </span>
    <span title="Поделиться в Twitter">
      <a onclick="Share.twitter({description: 'Hello world!'})">
        <i class="twitter square icon">Twitter</i>
      </a>
    </span>
    <span title="Поделиться ВКонтакте">
      <a onclick="Share.vkontakte({url: 'https://toster.ru/q/294480', description: 'Ответ на вопрос', 
    title: 'Как правильно создать кнопку «поделиться» в facebook?'})">
      <i class="vk icon">VK</i>
      </a>
    </span>

    Посмотреть.

    Если память не изменяет, Facebook с недавних пор (или уже давних) игнорирует передаваемые описания и заголовки страниц и извлекает необходимую информацию самостоятельно, непосредственно с указанной ссылки (преимущественно из тегов Open Graph).
    Ответ написан
    1 комментарий
  • Как правильно пользоваться updateOrCreate или firstOrCreate в Laravel?

    erniesto77
    @erniesto77
    oop, rb, py, php, js
    $data = $request->only('id', 'url_id', 'img_url');
    
    // создаст или обновит запись в модели Data в зависимости от того 
    // было ли найдено в модели Data поле url_id равное $request->url_id
    Data::updateOrCreate(['url_id' => $request->url_id], $data);
    
    // создаст запись в модели Data_trans 
    // если  в модели Data_trans  не найдена запись с data_id равной $request->id
    Data_trans::firstOrCreate(['data_id' => $request->id], [
        'data_id' => $request->id,
        'local' => '',
        'title' => '',
        'content' => '',
    ]); // возвращает найденную или вновь созданную запись


    Проще говоря, updateOrCreate и firstOrCreate принимают в качестве параметров 2 массива. В первом массиве проверка на существование в таблице пары поле => значение, а во втором данные которые будем создавать или обновлять
    Ответ написан
    Комментировать
  • Как сделать поиск в Laravel 5.4?

    @DeadMemories
    Переход на WordPress?
    UPD:
    Вы серьезно подписываетесь на этот вопрос?
    Окей, самый простой:
    Route::post('/search', 'Controller@method'); // можно get
    В методе News::where('title', 'LIKE', '%' . $request->query . '%')->get();
    Делов то.
    Не верьте, что like - это плохо.
    P.s: вы ж боты, да?)
    Ответ написан
    5 комментариев
  • Как происходит добавление новостей или постов на сайт с помощью php + mysql?

    BojackHorseman
    @BojackHorseman Куратор тега PHP
    ...в творческом отпуске...
    если на пальцах то дело обстоит так.

    первый пользователь действительно обратится к базе, получит результат (а это будет очень быстрый запрос - 30 записей сверху индексированной таблицы) и положит его в кэш. следующий за ним не будет пересчитывать эти данные, а возьмет их из кэша. и так до того момента, пока не добавится новая новость (это происходит не раз в секунду, очевидно), кэш устареет, следующий пользователь пересчитает данные и опять положит их в кэш.

    не все, конечно, так идеально, но дело обстоит так, что конкретно один этот запрос займет небольшой %% общего времени формирования ответа на запрос к серверу

    p.s. на реально больших значениях rps возникают эффекты другого порядка, как то резкие всплески нагрузки из-за конкурирующих запросов в момент сразу после устаревания кэша, для решения которых используют его искусственный "разогрев"
    Ответ написан
    4 комментария
  • Зачем статические методы в классе(PHP)?

    @ipokos
    можно обращаться без создания объекта Class::statikFunk

    Правильно.

    Что это мне дает?

    то что не нужно постоянно инициализировать класс с его конструктором.
    т.е. не создаются лишние объекты.

    Просто удобное обращение?

    это тоже..

    Когда объявлять статики?

    Например есть хелпер который решает разные мелкие вопросы.
    где-то массив перебрать, где то дату вернуть, где-то с строкой что то сделать
    (т.е. это простые задачи, которые не требуют сложной логики, подключения моделей и т.п., а могут быть выполнены в пределах локальной области видимости данного метода)
    вот такие методы можно объявлять статическими.
    Ответ написан
    Комментировать
  • Как в popover bootstrap добавить свой контент?

    @Billy_Milligan
    Вот примерчик для формы
    Ответ написан
    Комментировать
  • Как устранить ошибку "Call to a member function on null"?

    andre-92
    @andre-92
    PHP / yii2
    Blog::find($id) возвращает null, поставь проверку на существование блога
    $blog = Blog::find($id);
    if (isset($blog)) $blog->update($request->all());
    Ответ написан
    1 комментарий
  • Почему то docker не мапит каталоги в Windows 7?

    Demi44
    @Demi44 Автор вопроса
    System administrator, devops
    В общем то решение вроде как простое оказалось, сложность дочитать документацию до нужного места, с учетом того что докер в винде это over виртуализация....
    В общем то для нужных действий с монтированием шар необходимо учитывать что докер в винде 7 работает через virtualbox + обрезано-зарезанный линукс Tiny, а у же в этом виртальном linux собственно и работает docker. Необходимо учитывать что по дефолту VirtualBox монтирует c:\Users\ и уже через него докер будет обращаться к нужным каталоагам. После того как закинул интересующие меня данные в c:\Users -- передернул вируталку и перебилдил нужные образы - все появилось и заработало.
    Ответ написан
    Комментировать