首页 > 解决方案 > osiset / laravel-shopify 错误调用成员函数 api() on null

问题描述

我已经安装了插件,并按照安装说明进行操作。

现在,我在调用 api 方法时收到以下错误:

Error
Call to undefined method stdClass::api()

我的用户模型:

use Osiset\ShopifyApp\Contracts\ShopModel as IShopModel;
use Osiset\ShopifyApp\Traits\ShopModel;

class User extends Authenticatable implements IShopModel
{
    use Notifiable, ShopModel;
...

我的控制器:

    public function themeUpdate(ShopvoteShops $shopvoteShop, $request = null)
    {
        $user = DB::table('users')->first();
        $shopvoteShop = ShopvoteShops::where('url', $user->name)->first();
        $shop = Auth::user();

        $response = $user->api()->rest('GET', '/admin/script_tags.json');

基本上,实例 User 和 Auth 每次都是空的,例如我不能调用$shop->api(),因为Error Call to a member function api() on null.

我很高兴听到如何解决这个问题。

谢谢!

标签: laravelauthenticationshopifyshopify-appshopify-api

解决方案


您不需要从数据库中获取用户。在用户在商店中成功验证自己后,osiset/laravel-shopify会自动将商店和 api 信息添加到 laravel-authentification 。Auth::user()

查看文档:https ://github.com/osiset/laravel-shopify/wiki/Usage

否则,改为

$user->api()->rest('GET', '/admin/script_tags.json');

尝试

$shop->api()->rest('GET', '/admin/api/2021-04/script_tags.json');

2021-04代表 API 版本。

您可以在 shopify 开发文档中找到更多信息:https ://shopify.dev/docs/admin-api/rest/reference/online-store/scripttag


推荐阅读