• Как работает метод $request->accepts() в Laravel?

    @X110111
    Matilda-kot, я про URI вообще не говорил.
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
    Обратите внимание на */*.
    Если сильно не расписывать, то грубо говоря, браузер говорит серверу: я готов принимать вот такие типы, но если ты мне не можешь предоставить контент, имеющий перечисленные типы, то меня устроит любой тип.
    И когда вы пишете
    $request->accepts(['audio/basic', 'audio/L24']));
    Фактически вы проверяете готов ли клиент принимать контент с типом audio/basic или audio/L24.
    Соответственно вы получаете true, поскольку клиент вам говорит прямым текстом, что он готов принимать контент любого типа.
    Написано
  • Почему не подключается не один файл, не работают роуты в laravel?

    @X110111
    hades432, в public стандартный ларавеловский .htaccess присутствует? Вы там ничего не меняли?
  • Почему не подключается не один файл, не работают роуты в laravel?

    @X110111
    hades432, доступа к логам сервера нету?
    Я уже шаредами миллион лет не пользовался, но помню что если хостинг не самый дешманский, то где-то рядом с public_html обычно лежит logs с логами сервера.
    Кстати, а 500-страницу выдаёт именно апач, или ларовская страница 500?
  • Почему не подключается не один файл, не работают роуты в laravel?

    @X110111
    hades432, всё неправильно. Симлинк не нужен вообще. Собственно, как и директория laravel.
    Весь проект заливаем прямо в public_html. Другими словами, у нас должно быть: public_html/app, public_html/public, public_html/routes и так далее.
    Затем, в public_html добавляете тот .htaccess и по идее должно работать.
  • Почему не подключается не один файл, не работают роуты в laravel?

    @X110111
    hades432, У вас шаред, или свой сервер?
    Если шаред, то сделайте как написал выше, используя .htaccess.
    Если свой сервер, то настройте нормально document root.
    Я так понял что шаред, но уточняю на всякий случай.
  • Почему не подключается не один файл, не работают роуты в laravel?

    @X110111
    hades432, закиньте в корень .htaccess со следующим содержимым
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteRule ^(.*)$ public/$1
    </IfModule>
  • Почему не подключается не один файл, не работают роуты в laravel?

    @X110111
    hades432, Что значит удалил и сделал index.php, который ссылается на public/index.php?
    То есть вы в корень закинули index.php, который инклюдит public/index.php? Это так не будет работать.
  • Почему не подключается не один файл, не работают роуты в laravel?

    @X110111
    hades432, а с какой радости им работать, если запрос не поступает на ваш index.php.
  • Почему wsl останавливается при включённом systemd?

    @X110111 Автор вопроса
    Через месяц, но отметил решением. Лучше поздно, как говориться. Прошу прощения, был уверен, что отметил сразу.
  • Правильно ли я понимаю работу с блокировками строк?

    @X110111 Автор вопроса
    Спасибо за ответ.


    Но, первое это не блокировка строк.

    А что это?
    Или вы к тому, что в случае
    SELECT balance FROM users WHERE id = 1 LIMIT 1 FOR UPDATE;

    происходит блокировка столбца balance, а не всей строки, а значит блокировкой строки называть это неправильно?
    Объясните пожалуйста эту свою фразу. Не хотел бы ошибочно использовать неправильную терминологию.


    Конкретно ваш кейс проще решается через ограничение на значение ниже нуля и обработка исключения в коде.

    Согласен. Но для меня было важно убедиться в том, правильно ли я понимаю работу именно с блокировками. Так что моменты с ограничениями и прочим я намеренно опустил. Может для этого случая и не самый удачный пример выбрал, но постарался максимально упрощать.
  • Правильно ли я понимаю работу с блокировками строк?

    @X110111 Автор вопроса
    Спасибо за ответ.


    Но иногда про это забывают и делают не поле + 1, а полученное-ранее-значение-поля + 1.

    Я специально написал правильный вариант, поскольку очевидно, что в первом случае блокировка необходима. Между операциями select и update может многое произойти и ранее полученное значение будет уже неактуальным.
    Больше интересовало то, верно ли я рассуждаю, что в случае правильного варианта дополнительных телодвижений не требуется и явная блокировка будет лишней.

    Может быть ответите мне ещё на один вопрос, или подтолкнёте в нужном направлении. Был бы благодарен.

    А можем ли мы каким-либо образом предотвратить создание непреднамеренных дублей, без использования уникальности?

    Вот у меня была ситуация, я заказывал такси и запрос был отправлен, но лагнул интернет и ответ не пришёл. А когда я нажал на "заказать" ещё раз, увидел что-то вроде: возможно вы случайно делаете повторный заказ, хотите ли заказать ещё одну машину?
    Но между этими событиями прошло некоторое время.
    А вот если бы ситуация развивалась в условиях гонки транзакций:

    • Первая транзакция выполняет чтение и видит что такого заказа ещё нет.


    • Вторая транзакция выполняет чтение и видит что такого заказа ещё нет.


    • Первая транзакция выполняет запись, создавая заказ.


    • Вторая транзакция выполняет запись, создавая заказ. Она же не знает, что он уже создан.


    Как я понимаю, в этом случае создаются дубли и предотвратить это не возможно?
    И уникальность тут тоже ведь не подходит. Да, мы можем собрать все параметры заказа (идентификатор клиента + пункт отправления + пункт назначения + тип оплаты + тип авто + время подачи авто), на основе этого вычислить хеш, но делать этот столбец уникальным нельзя. Я же могу вполне сделать два идентичных заказа. Вдруг у меня семья большая?