我有使用Laravel编写的API。类示例:
/**
* Class MRoleController
* @package App\Http\Controllers\API
*/
class MRoleAPIController extends BaseApiController
{
/** @var MRoleRepository */
private $mRoleRepository;
public function __construct(MRoleRepository $mRoleRepo)
{
$this->mRoleRepository = $mRoleRepo;
}
/**
* @param Request $request
* @return Response
*
* @SWG\Get(
* path="/m_roles",
* summary="Get a listing of the MRoles.",
* tags={"MRole"},
* description="#Get all MRoles",
* produces={"application/json"},
* @SWG\Response(
* response=200,
* description="successful operation",
* @SWG\Schema(
* type="object",
* @SWG\Property(
* property="success",
* type="boolean"
* ),
* @SWG\Property(
* property="data",
* type="array",
* @SWG\Items(ref="#/definitions/MRole")
* ),
* @SWG\Property(
* property="message",
* type="string"
* )
* )
* )
* )
*
* @direct
*/
public function index($request = false)
{
return parent::getAll($request, $this->mRoleRepository);
}
我有另外一个方法和RPC正确使用它们。
在浏览器控制台中,我收到两个错误:
Ext.direct.Manager.resolveApi():无法解析Direct API方法 'API.MRole.index'用于Ext.data.proxy.Direct实例中的读取操作 id:未知
未捕获错误:无法解析Direct API方法'API.MRole.index' 读取具有id:unknown
的Ext.data.proxy.Direct实例中的操作
ExtJS模型,我尝试使用这个类:
Ext.define('AIS.model.role', {
extend: 'Ext.data.Model',
alias: 'model.role',
requires: [
'Project.DirectAPI',
'Ext.data.field.Integer',
'Ext.data.field.String',
'Ext.data.proxy.Direct',
'Ext.data.reader.Json'
],
idProperty: 'Role_id',
fields: [
{
type: 'int',
name: 'RoleId'
},
{
type: 'string',
name: 'RoleName_RU'
},
{
type: 'string',
name: 'RoleName_UZ'
},
{
type: 'string',
name: 'RoleName_EN'
}
],
proxy: {
type: 'direct',
api: {
read: 'API.MRole.index',
create: 'API.MRole.store',
update: 'API.MRole.update',
destroy: 'API.MRole.destroy'
},
reader: {
type: 'json',
rootProperty: 'data',
totalProperty: 'totalCount'
}
}
});
感谢您的回答。
答案 0 :(得分:0)
我解决了这个问题。事实证明,我忘了添加" MRole" class to ext-direct.php config。