I am using Laravel 5 and have a model Book
.
I have two environments - dev and production
On dev:
In tinker
, when I do
Book::first()
It gives me
AppBook {
id: 1,
name: ...
On produvction:
The same thing gives me
AppBook {
id: "1",
name: ...
Notice the id
is int
in dev but string
on production
Because of this, a condition like
if($id === $book->id)
which works correctly on dev, doesn't work on production.
Any idea why this is so? Is there a way I can make production environment to give me int
instead of string
?
PS:
- I have installed Laravel on dev and then pulled the code on production via git. So my
composer.json
and composer.lock
are exactly same on dev and production. So running composer install
on production should give me same environment there as on dev.
- I am using
mysql
database.
- My dev environment is Laravel's
homestead
.
Book
is just a dummy model I've used here. All my models behave in the same manner as explained above.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…