main.CRITICAL:報告 ID:webapi-61d924815c991;訊息:型別別不存在 {"exception":"[object] (Exception(code: -1): Report ID: webapi-61d924815c991; 訊息:/var/www_magento/apimagento/vendor/magento 中不存在型別別/framework/Webapi/ErrorProcessor.php:208,ReflectionException(代碼:-1):/var/www_magento/apimagento/vendor/magento/framework/Webapi/ServiceInputProcessor.php:264)中不存在型別別“} []
等/模塊.xml
<?xml version="1.0"?>
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd">
<route url="/V1/manageuser/createuser" method="POST">
<service class="MobileApi\PhoneUser\Api\PhoneUserManageInterface" method="registerPhoneUser"/>
<resources>
<resource ref="anonymous"/>
</resources>
</route>
<route url="/V1/manageuser/get" method="POST">
<service class="MobileApi\PhoneUser\Api\PhoneUserManageInterface" method="getUserByMobile"/>
<resources>
<resource ref="anonymous"/>
</resources>
</route>
<route url="/V1/manageuser/login" method="POST">
<service class="MobileApi\PhoneUser\Api\PhoneUserManageInterface" method="doPhoneLogin"/>
<resources>
<resource ref="anonymous"/>
</resources>
</route>
</routes>
Api/PhoneUserManageInterface.php
<?php
namespace MobileApi\PhoneUser\Api;
/**
* @api
*/
interface PhoneUserManageInterface
{
/**
* Make the login with user mobile number
* @param string $phonenumber
* @return string Token created
* @throws \Magento\Framework\Exception\AuthenticationException
*/
public function doPhoneLogin($phonenumber);
/**
* get details of user using mobile number
* @param string $phonenumber
* @return string user_email
* @throws \Magento\Framework\Exception\AuthenticationException
*/
public function getUserByMobile($phonenumber);
/**
* create new user
* @param type $firstName
* @param type $lastName
* @param type $email
* @param type $phonenumber
* @return mixed token
* @throws \Magento\Framework\Exception\AlreadyExistsException
*/
public function registerPhoneUser($firstName, $lastName, $email, $phonenumber);
}
型號/PhoneUserManage.php
<?php
namespace MobileApi\PhoneUser\Model;
use MobileApi\PhoneUser\Api\PhoneUserManageInterface;
use Magento\Customer\Api\CustomerRepositoryInterface;
use Magento\Customer\Api\Data\CustomerInterface;
use Magento\Customer\Api\Data\CustomerInterfaceFactory;
use Magento\Customer\Model\Customer;
use Magento\Customer\Model\CustomerFactory;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\Exception\AlreadyExistsException;
use Magento\Framework\Exception\State\InputMismatchException;
use Magento\Store\Model\StoreManagerInterface;
use Magento\Integration\Model\Oauth\TokenFactory as TokenModelFactory;
use Magento\Customer\Api\Data\CustomerExtensionFactory;
use Magento\Framework\Webapi\ServiceInputProcessor;
use Magento\Framework\Webapi\ErrorProcessor;
class PhoneUserManage implements PhoneUserManageInterface
{
/**
* Token Model
*
* @var TokenModelFactory
*/
private $tokenModelFactory;
/**
* @type StoreManagerInterface
*/
protected $storeManager;
/**
* @type CustomerFactory
*/
protected $customerFactory;
/**
* @var CustomerInterfaceFactory
*/
protected $customerDataFactory;
/**
* @var CustomerRepositoryInterface
*/
protected $customerRepository;
/**
* @var CustomerExtensionFactory
*/
protected $customerExtensionFactory;
/**
* user constructor.
* @param CustomerFactory $customerFactory
* @param CustomerInterfaceFactory $customerDataFactory
* @param CustomerRepositoryInterface $customerRepository
* @param StoreManagerInterface $storeManager
* @param TokenModelFactory $tokenModelFactory
*/
public function __construct(
CustomerFactory $customerFactory,
CustomerInterfaceFactory $customerDataFactory,
CustomerRepositoryInterface $customerRepository,
StoreManagerInterface $storeManager,
TokenModelFactory $tokenModelFactory,
CustomerExtensionFactory $customerExtensionFactory
) {
$this->customerFactory = $customerFactory;
$this->customerRepository = $customerRepository;
$this->customerDataFactory = $customerDataFactory;
$this->storeManager = $storeManager;
$this->tokenModelFactory = $tokenModelFactory;
$this->customerExtensionFactory = $customerExtensionFactory;
}
/**
*
* @param type $firstName
* @param type $lastName
* @param type $email
* @param type $phonenumber
* @return string
* @throws AlreadyExistsException
*/
public function createPhoneUser($firstName, $lastName, $email, $phonenumber){
return "createPhoneUser {$phonenumber} on ".date('d/m/Y H:i:s');
}
public function doPhoneLogin($phonenumber)
{
return "doPhoneLogin {$phonenumber} on ".date('d/m/Y H:i:s');
}
public function getUserByMobile($phonenumber)
{
return "getUserByMobile {$phonenumber} on ".date('d/m/Y H:i:s');
}
}
這里奇怪的是 doPhoneLogin 和 getUserByMobile 作業沒有錯誤。但是當我嘗試createPhoneUser 時,我得到了上述錯誤。

請指導我解決這個問題。
uj5u.com熱心網友回復:
/**
* create new user
* @param type $firstName
* @param type $lastName
* @param type $email
* @param type $phonenumber
* @return mixed token
* @throws \Magento\Framework\Exception\AlreadyExistsException
*/
public function registerPhoneUser($firstName, $lastName, $email, $phonenumber);
應該是(IIRC你也應該至少在更改之后洗掉生成的)
/**
* create new user
* @param string $firstName
* @param string $lastName
* @param string $email
* @param string $phonenumber
* @return mixed
* @throws \Magento\Framework\Exception\AlreadyExistsException
*/
public function registerPhoneUser($firstName, $lastName, $email, $phonenumber);
服務是從介面中的檔案塊定義的,其中的任何拼寫錯誤或錯誤都會破壞事情。在 devdocs 上閱讀更多規則和詳細資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/405848.html
標籤:
