Size: a a a

2020 April 29

AB

Andrey Bogdanov in Laravel Pro
Anton 🐻
Многие привыкли работать с квери-билдером ларавела через статический вызов модели как то так: Model::whereDate($date)->orderBy('order')->first();  и получить ожидаемый результат запроса - одну запись по нужному условию и сортировкой. Однако, метод find() не является частью Fluent Interface квери-билдера и выполняет сразу две ответственности: модифицирует состояние квери-билдера, добавляя в него условие where('id', '=', $id) и возвращает первое найденное значение, т.е. модель.

Таким образом, в выражении Model::find($id)->first(); первая часть Model::find($id) вернёт либо модель либо null и метод first() будет вызван не у квери-билдера, а у модели, что выполнит ещё один запрос к таблице и и вернёт модель на основе первой строки таблицы.

Собственно, в рот ебал я такой Active Record, в котором можно составлять корректные и выполняющиеся выражения, но дающие не очевидный результат. При работе с AR ларика не всегда понятно по контексту относится ли метод к квери-билдеру или к самой модели. Особей эпик фейл в том, что у них есть методы с одинаковыми сигнатурами.
вот ты наркоман, после find() вернется коллекция и метод first() это метод коллекции
источник

A

Anton 🐻 in Laravel Pro
не важно зачем, важно что во время чтения кода это не вызывает подозрений, это отрабатывает интерпретатор пхп и это соответствует существующим методам в ларике.
источник

A

Anton 🐻 in Laravel Pro
Andrey Bogdanov
вот ты наркоман, после find() вернется коллекция и метод first() это метод коллекции
обоснуй за наркомана или извинись
источник

DK

Denis 🕸 Khomusyak in Laravel Pro
Anton 🐻
не важно зачем, важно что во время чтения кода это не вызывает подозрений, это отрабатывает интерпретатор пхп и это соответствует существующим методам в ларике.
если в find() была передана строка/число, то вернется запись, массив - коллекция, разве нет ?
источник

AB

Andrey Bogdanov in Laravel Pro
а зачем столько с матом сообщений пересылать в чат, если не разбираешься в вопросе?
источник

ДК

Дмитрий Кожанов... in Laravel Pro
Anton 🐻
обоснуй за наркомана или извинись
источник

ДК

Дмитрий Кожанов... in Laravel Pro
Я не удержался
источник

ДН

Давид Надеждин... in Laravel Pro
Andrey Bogdanov
вот ты наркоман, после find() вернется коллекция и метод first() это метод коллекции
c каких пор find возвращает колекцию?
источник

A

Anton 🐻 in Laravel Pro
Andrey Bogdanov
а зачем столько с матом сообщений пересылать в чат, если не разбираешься в вопросе?
кто не разбирается? ты?
источник

DK

Denis 🕸 Khomusyak in Laravel Pro
ты юзал find([1,2,3]) - ?
источник

ДН

Давид Надеждин... in Laravel Pro
Denis 🕸 Khomusyak
ты юзал find([1,2,3]) - ?
он разве принимает массив как аргумент?
источник

DK

Denis 🕸 Khomusyak in Laravel Pro
Давид Надеждин
он разве принимает массив как аргумент?
я же написал, там может быть не типизированный аргумент
источник

V

Vadim in Laravel Pro
Давид Надеждин
он разве принимает массив как аргумент?
Да
источник

A

Anton 🐻 in Laravel Pro
чем глубже я погружаюсь во внутренее устройство ларика, тем больше серьёзных проблем в нём нахожу, это пример одной такой проблемы.
источник

DK

Denis 🕸 Khomusyak in Laravel Pro
строка/число/массив. Определяет тип и составляет запрос.
источник

AS

Alek Sanders in Laravel Pro
Denis 🕸 Khomusyak
ты юзал find([1,2,3]) - ?
а не лучше whereIn()?
источник

ДН

Давид Надеждин... in Laravel Pro
Denis 🕸 Khomusyak
строка/число/массив. Определяет тип и составляет запрос.
поооонятно...
источник

DK

Denis 🕸 Khomusyak in Laravel Pro
Anton 🐻
чем глубже я погружаюсь во внутренее устройство ларика, тем больше серьёзных проблем в нём нахожу, это пример одной такой проблемы.
Чувак это пхп :) В чем тут проблема ?
источник

DK

Denis 🕸 Khomusyak in Laravel Pro
в пхп еще нет как питоне, но скоро будет.
источник

V

Vadim in Laravel Pro
Denis 🕸 Khomusyak
Чувак это пхп :) В чем тут проблема ?
А твоя?
источник