Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#626 Re: Laravel 5.x » Select..in(). Сырые запросы против ORM » 30.11.2017 13:52:28

Не удержусь, дам ещё годноты smile

Когда-то писал собственные обёртки DBAL над mysqli и PDO. В частности, для упрощения работы с массивами. Так вот, если вы хотите "автоматизировать" списки параметров из массива, можете вместо пустого массива подставлять NULL. Таким образом избежите синтаксических ошибок и лишних if-ов в вызывающем коде.

Запрос вида

.. WHERE x IN (NULL)

вернёт пустой набор, даже если x null-able и в колонке есть значения NULL !

Пруф: http://sqlfiddle.com/#!9/1cd3c3/1

Про магию NULL в SQL полезно знать даже тем, кто не использует SQL напрямую wink

#628 Re: Laravel 5.x » Безопасность сайта » 30.11.2017 13:31:36

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

хорошая паранойя не повредит.

#629 Re: Laravel 5.x » Безопасность сайта » 30.11.2017 13:26:12

Androbim пишет:

ри условии, что www-data - владелец корневой папки ресурса, а пользователь, от имени которого осуществляются, например, "обновления" на сервере, входит в группу www-data

а вот такие расклады это как раз "особые условия". и ответ кажется очевиден )))

#630 Re: Laravel 5.x » Безопасность сайта » 30.11.2017 13:24:06

Если нет особых условий, то права рекомендуется давать только владельцу, отказывая даже единогрупникам, т.е. не боле чем 0755 для папок и 0644 для файлов.

#631 Re: Laravel 5.x » Errors in helpers.php » 30.11.2017 12:36:53

P.S. так как PHP 5 уже не поддерживается официально ( http://php.net/supported-versions.php ), тебе полюбомупора сменить хостинг. ну или задать вопрос службе поддержки, вдруг они предоставляют возможность апгрейда до PHP 7.1.

#632 Re: Laravel 5.x » Errors in helpers.php » 30.11.2017 12:31:28

Недавно начал изучать Laraval 5.4

"Ожидается символ ?". Вот дословный текст ошибки "Parse error: syntax error, unexpected '?'

в точности наоборот, означает неожиданное появление "?".

для Laraval 5.4 достаточно PHP >= 5.6.4 https://laravel.com/docs/5.4/installation
ты видимо поставил какую-то другую версию. в v5.5 там действительно есть фишки из седьмого PHP:
$arguments[1] ?? null
в то время как в 5.4 там такое:
isset($arguments[1]) ? $arguments[1] : null

как поставить laravel определённой версии:
https://stackoverflow.com/a/35163627/272885

#633 Re: Веб-разработка » Чистка кеша в Chromium-браузуре при работае с vue.js » 30.11.2017 11:59:36

mstdmstd пишет:

Вспомнил про старый способ :    <script src="{{ asset('js/funcs.js') }}{{  "?dt=".time()  }}"></script>
    <script src="{{ asset('js/app.js'    ) }}{{  "?dt=".time()  }}"></script>
    <script src="{{ asset('js/my_app.js') }}{{  "?dt=".time()  }}"></script>вроде, помогает...

Это будет означать устаревание кеша при каждом запросе. Если ваша цель нагрузить свой сервер по максимуму, а посетителя нагрузить лишним трафиком, то да, норм решение.

Мой совет: привязать версию ассетов к деплою. одно обновление сайта - одна смена версий. https://php.ru/forum/threads/versii-ass … ost-542044

#634 Re: Laravel 5.x » Проблема с запросами » 27.11.2017 14:38:41

У тебя значение по умолчанию для сортировки почему-то "*". "order by *" это что-то новенькое big_smile
Сколько параметров у метода get() ? А сколько ты пытаешся использовать?

Когда тебе надо отсортировать по нескольким колонкам, вызови метод orderBy несколько раз, или передай ему массив.
Пробуй, ёмана, опыт сын ошибок трудных.

#635 Re: Laravel 5.x » Импорт собственного класса в класс миграции » 27.11.2017 14:24:39

Gleb2708 пишет:

зачем в классе указывать пространство имён? Почему оно не определяется автоматически на основе пути к файлу?

потому что пока что люди командуют машинами, а не наоборот. машины могли бы просто расставить нужные байты на нужных места. а в человеческом мире надо чтобы читающий видел полное имя класса, т.е. неймспейс + имя.

#636 Re: Laravel 5.x » Ошибка отправки email с поддомена » 27.11.2017 14:09:44

судя по всему, это костыль.
автоматически вычисленный обратный адрес не соответствует реально существующему и поэтому зарубается почтовой системой. надо просто явно указывать From и Reply-To, а не суперглобальные переменные портить big_smile

#637 Re: Laravel 5.x » Select..in(). Сырые запросы против ORM » 27.11.2017 14:03:19

Proger_XP пишет:

С другой стороны, какие альтернативы? Писать SQL от руки и вставлять данные прямо в него, рискуя получить SQL injection? Построитель запросов - меньшее зло.

можно вообще без зла: SQL запрос с параметрами.

сам же пишешь, что "цепочка запросов это приближение к SQL", — истинная правда. некоторое подмножество запросов можно довольно дословно выразить через эти цепочки, а некоторые будет трудновато или вообще не получится, потому что SQL очень богат.

построитель запросов отлично справляется там, где нужен именно построитель запросов, простите за тавтологию. например когда визуальный "фильтр" с чекбоксами и радиобатонами надо транслировать в запрос к базе.
ну или для тех разработчиков, кто ниасилил SQL и ему проще оставаться в рамках Query Builder.

#638 Re: Laravel 5.x » Select..in(). Сырые запросы против ORM » 27.11.2017 13:47:58

tmanager пишет:

Но поинтересуюсь: а за что такого страшного в старом добром SQL?

Proger_XP пишет:

В том, что где сырой запрос, там и SQL injection.

ага, а ORM типа без использования SQL работает, на чистом волшебстве. big_smile
топикстартер изначально показал запрос с плейсхолдером. почему вдруг контекст поменялся на прямую вставку строки в тело запроса?

#639 Re: Laravel 5.x » Select..in(). Сырые запросы против ORM » 27.11.2017 13:40:52

Fridz пишет:

Я всего лишь спросил совета, как мне в сыром запросе адекватно вставить переменную в условие IN().

создать столько плейсхолдеров внутри IN, сколько елементов в массиве. принцип тот же, что и на "голом PDO".
https://stackoverflow.com/a/29653461/272885

очевидно что пустому массиву соответствует пустой результат, и запрос можно не выполнять вообще.

#640 Re: Laravel 5.x » Помогите разобраться с установкой Homestead » 27.11.2017 13:20:53

С какой-то непонятной ошибкой может справиться только какой-то непонятный специалист. big_smile

Больше конкретики, пожалуйста.

Подвал раздела