Answer the question
In order to leave comments, you need to log in
Why does Laravel fetch work this way?
The code $user->entities->where('type', 1)->count()
doesn't work when it $user->entities->where('type', '1')->count()
works. The type of the type field is integer, why is it necessary to pass a number as a string?
Answer the question
In order to leave comments, you need to log in
Потому что where используется на коллекции.
Коллекция по-дефолту для where использует строгое сравнение (===).
В Eloquent есть баг, когда поле не распознается как int и идет строкой, а не числом.
Варианты решения:
- Явно указать в модели $casts = ['type' => 'int'];
- Использовать whereLoose('type', 1), тогда будетиспользоваться нестрогое сравнение (==)
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question