laravel这个查询会触发algolia,有时不需要,这个demo怎么改一下

请求的控制器是这样的:

    public function update(Request $request, $id)
    {
        $goods = Goods::findOrFail($id);
        
        $amount = $request->get('amount');
        
        switch ($amount) {
            case 10:
                $price = Price::findOrFail(1);
                break;
            case 20:
                $price = Price::findOrFail(2);
                break;
            case 30:
                $price = Price::findOrFail(3);
                break;
            default:
                $price = Price::findOrFail(4);
                break;
        }
        $goods->price = $price->price;  //这一句会触发查询Algolia
        return $price;
    }

return $price;会这样报错:


AlgoliaException in Client.php line 748:
Hosts unreachable: Connection timed out after 2000 milliseconds,Could not resolve host: L73SHQWTEB-1.algolianet.com,Could not resolve host: L73SHQWTEB-3.algolianet.com,Could not resolve host: L73SHQWTEB-2.algolianet.com

原因:
Goods模型中使用了algolia,$goods->price = $price->price;会触发到对goods表的查询,所以查询会到algolia的索引数据库中去查询。

class Goods extends Model
{
    use Searchable;//使用algoliasearch-laravel要加上这一句,把这一句注释掉测试,即可正常工作,可是这里需要保留
}

可是这里需要查询本地数据库,要怎么改一下?

这是因为被墙了吧,因为你更新数据库的记录的时候,Algolia 需要更新索引,但是因为墙的原因没能更新到,所以会出现这样的错误

JellyBool
修改的评论也不能少于六个字哦!
canihelpyou 回复 JellyBool
修改的评论也不能少于六个字哦!
JellyBool 回复 canihelpyou
修改的评论也不能少于六个字哦!
xiaoshen 回复 JellyBool
修改的评论也不能少于六个字哦!
JellyBool 回复 xiaoshen
修改的评论也不能少于六个字哦!
xiaoshen 回复 JellyBool
修改的评论也不能少于六个字哦!
JellyBool 回复 xiaoshen
修改的评论也不能少于六个字哦!