Задать вопрос
itsoft
@itsoft
Директор веб-студи и дата-центра itsoft

Почему whereRaw в Laravel не поддерживает именованные плейсхолдеры как ::select?

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

Потому что обойти это через тот же ::select можно. Но не просто же так разработчики убрали такую простую функциональность.

Плейсхолдеры в виде ? на мой взгляд очень опасны, так как легко в массиве ошибиться порядком параметров.
  • Вопрос задан
  • 167 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Loftschool
    Комплексное обучение PHP
    6 недель
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Яндекс Практикум
    Фулстек-разработчик расширенный
    20 месяцев
    Далее
Решения вопроса 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
Welcome to Laravel. Реально обьективной причины почему так сделали - нет. Возможно им было лень, возможно посчитали ненужным, может не хотят рефакторить и вводить такие breaking changes.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Samuel_Leonardo
Вполне поддерживает
User::whereRaw('username = :username',[':username'=>'test'])->get();

Есть два ограничения,
1. именованные и позиционные параметры не должны использоваться одновременно
2. именнованные параметры должны быть уникальными
повторение так же будет вызывать ошибку, например'id =:id or something_else=:id'

Соответсвенно,если вы миксуете whereRaw используя именованные параметры с обычными where , вы получите ошибку
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы