laravel - 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.
我很高兴听到如何解决这个问题。
谢谢!
解决方案
您不需要从数据库中获取用户。在用户在商店中成功验证自己后,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
推荐阅读
- css - 使用 javascript 文字时未应用 Angular 类
- javascript - Javascript下载文件并回读修改
- reactjs - 您如何通过将令牌存储在本地存储中来保持用户登录使用?
- css - 如何将动态 url 链接传递到 Angular 中的内联 css?
- javascript - 如何使用 JavaScript 在范围滑块间隔上添加 CSS 类?
- javascript - clientX 和 clientY 从真实坐标偏移
- typescript - 如何获取 News API 并在 Vuetify.js 卡片组件中显示数据?
- javascript - 获取 ERC20 的所有权数组
- extract - Excel公式提取第二个斜杠之前的字符串部分,其中之间的文本可能是不同的长度
- java - 我正在尝试打印未对齐的金字塔