Php Laravel Eloquent firstOrFail返回表中的所有记录

Php Laravel Eloquent firstOrFail返回表中的所有记录,php,laravel,Php,Laravel,我试图在我雄辩的模型中找出一行。我想做的是首先搜索它是否存在或抛出异常。在Laravel文档中,它说我可以使用firstOrFail或findOrFail。有说服力的问题如下: Game::where('Game','Game name')->firstOrFail()->记住(60)->get() 这用于查找记录并在未找到时引发异常,但它会返回所有行。我想做的就是返回我搜索的行。在本例中,我没有按主键进行索引,因此findOrFail不起作用 如果我用->first()替换->get(),它所

我试图在我雄辩的模型中找出一行。我想做的是首先搜索它是否存在或抛出异常。在Laravel文档中,它说我可以使用
firstOrFail
findOrFail
。有说服力的问题如下:

Game::where('Game','Game name')->firstOrFail()->记住(60)->get()

这用于查找记录并在未找到时引发异常,但它会返回所有行。我想做的就是返回我搜索的行。在本例中,我没有按主键进行索引,因此findOrFail不起作用

如果我用
->first()
替换
->get()
,它所做的就是返回表中的第一行。它忽略
::where()

编辑:当我删除
->get()
->memory()
时,它返回了所需的行,但是我仍然希望缓存查询,但是当我使用
->memory()
并打印结果时,整个雄辩模型被转储

EDIT2:所有问题都已解决。我总是混淆
->memory()的位置。正确的方法是:

Game::where('game', 'game-name')->remember(60)->firstOrFail()

Game::where('Game','Game name')->记住(60)->firstOrFail()

缓存了错误的结果,请在找到正确的查询之前避免使用记住。 如果使用get,它将返回一个集合实例。 findOrFail期望id作为第一个参数。 使用first从查询中获取第一个结果,然后检查该结果是否为空以引发异常

Game::where('game', 'game-name')->first();
一切都解决了
我总是混淆
->memory()的位置
正确的方法是:

Game::where('game', 'game-name')->remember(60)->firstOrFail()

请用您找到的解决方案发布答案,并接受您自己的答案。它会帮助其他人。你不需要记住,你必须注意的是
第一个
第一个或失败
获取
查找
等。它们都执行查询并返回
集合
/
模型
/
(或
数组
),因此实际上您确实运行了所需的查询,然后调用
记住
,并使用
获取
运行了另一个查询。