Php Laravel4雄辩的查询返回一个旧的数据库值,而不是更新的数据库值
我有一个Php Laravel4雄辩的查询返回一个旧的数据库值,而不是更新的数据库值,php,laravel-4,mysqli,eloquent,Php,Laravel 4,Mysqli,Eloquent,我有一个书表,其中有一列用于股票计数。例如,某本书的期初库存为100 BOOKS book_id | book_stocks | book_isbn 1 | 100 | 123123123 当我运行此代码时,它将输出“100” $book = Book::where('book_isbn','=',$credentials['book_isbn'])->get(); foreach ($book as $b) { ech
书
表,其中有一列用于股票计数。例如,某本书的期初库存为100
BOOKS
book_id | book_stocks | book_isbn
1 | 100 | 123123123
当我运行此代码时,它将输出“100”
$book = Book::where('book_isbn','=',$credentials['book_isbn'])->get();
foreach ($book as $b) {
echo $b->book_stocks;
}
然后,一旦用户预订了一本书,我的代码的一部分将减少该库存。这是密码
Book::where('book_isbn','=',$credentials['book_isbn'])->decrement('book_stocks');
当我检查数据库时,它现在变为
BOOKS
book_id | book_stocks | book_isbn
1 | 99 | 123123123
但当我再次运行此代码时
$book = Book::where('book_isbn','=',$credentials['book_isbn'])->get();
foreach ($book as $b) {
echo $b->book_stocks;
}
输出仍然是“100”
我不知道它在哪里保存了旧股票的价值
我确信我的数据库连接,我试图清除缓存等
有人知道这背后的原因吗
提前感谢当您清除缓存时,您运行了什么?那么book\u id
应该是book\u isbn
,还是您没有给我们看另一张表?@nuc,我运行book::where('book\u isbn','=',$credentials['book\u isbn')->get()。。书号是图书表的一部分。。抱歉,我忘了包括它,您正在运行什么命令/东西来清除缓存?您是否正在运行php artisan缓存:清除?因为我想排除缓存的片段。我不认为这个问题是有说服力的缓存,因为您没有说您正在调用memory()
。我还会在你的浏览器中进行强制刷新(shift+ctrl+R或cmd+shift+R)。@nuc我只清除了存储在浏览器中的一个。我尝试运行php artisan缓存:清除并执行强制刷新。但是,获取的数据仍然没有更新。我还注意到,当数据库中的值为99时,它显示为100,当298时,它显示为300。这很奇怪,因为您没有存储任何精度。我会将您的列更改为整数,因为库存中没有小数(不能有一本书的.18)。但是,很高兴你解决了你的问题。