Graphqlroutelocator
Use the snippet in the Magento 2 module creator.
Files
src/RootComponents/Test/test.js
import React, { Component } from 'react';
export default class Test extends Component {
render() {
return 'Your rootComponent Test with id: ' + this.props.id;
}
}
src/RootComponents/Test/test.css
.root {
}
src/RootComponents/Test/index.js
/**
* @RootComponent
* description = 'Basic Test'
* pageTypes = TEST
*/
export { default } from './test';
Plugin/GraphQl/Magento/UrlRewriteGraphQl/Model/Resolver/EntityUrl.php
<?php
declare(strict_types=1);
namespace Mage2Gen\Module\Plugin\GraphQl\Magento\UrlRewriteGraphQl\Model\Resolver;
use Magento\Framework\GraphQl\Config\Element\Field;
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
class EntityUrl
{
/**
* @param \Magento\UrlRewriteGraphQl\Model\Resolver\EntityUrl $subject
* @param $result
* @param Field $field
* @param ContextInterface $context
* @param ResolveInfo $info
* @param array | null $value
* @param array | null $args
*/
public function afterResolve(
\Magento\UrlRewriteGraphQl\Model\Resolver\EntityUrl $subject,
$result,
Field $field,
$context,
ResolveInfo $info,
array $value = null,
array $args = null
) {
return $result;
}
}
etc/schema.graphqls
enum UrlRewriteEntityTypeEnum {
TEST
}
etc/graphql/di.xml
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\UrlRewriteGraphQl\Model\Resolver\EntityUrl">
<plugin name="Mage2Gen_Module_Plugin_GraphQl_Magento_UrlRewriteGraphQl_Model_Resolver_EntityUrl" type="Mage2Gen\Module\Plugin\GraphQl\Magento\UrlRewriteGraphQl\Model\Resolver\EntityUrl" sortOrder="10" disabled="false"/>
</type>
</config>