Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何扩展与API平台一起工作的条令实体_Php_Symfony_Doctrine Orm_Api Platform.com - Fatal编程技术网

Php 如何扩展与API平台一起工作的条令实体

Php 如何扩展与API平台一起工作的条令实体,php,symfony,doctrine-orm,api-platform.com,Php,Symfony,Doctrine Orm,Api Platform.com,当我想用API平台注释分离条令实体时,我有一个例子。 主要的问题是我能够创建一个资源,它看起来还可以,但是它没有保存在数据库中。似乎我还需要补充一点,但我不知道该在这里添加什么 映射是正确的,数据库是最新的 实体类: 首先,示例类缺少$name属性。 添加private$name在$uuid之后,除非EntityExample具有该受保护/公共属性 您的ApiResource()注释类似乎没有序列化组注释,对任何属性都没有注释。 在api/config/packages/api_platfor

当我想用API平台注释分离条令实体时,我有一个例子。 主要的问题是我能够创建一个资源,它看起来还可以,但是它没有保存在数据库中。似乎我还需要补充一点,但我不知道该在这里添加什么

映射是正确的,数据库是最新的

实体类:
首先,示例类缺少
$name
属性。 添加
private$name在$uuid之后,除非EntityExample具有该受保护/公共属性

您的ApiResource()注释类似乎没有序列化组注释,对任何属性都没有注释。


在api/config/packages/api_platform.yaml中,通常有以下配置:

api_platform:
    mapping:
        paths: ['%kernel.project_dir%/src/Entity']
如果apip确实找到了您的资源,它可能会是:

api_platform:
    mapping:
        paths: ['%kernel.project_dir%/src/ApiPlatform']
但为了找到实体及其映射,应该如下所示:

api_platform:
    mapping:
        paths: 
      - '%kernel.project_dir%/src/Entity'
      - '%kernel.project_dir%/src/Resources/config/doctrine'
      - '%kernel.project_dir%/src/ApiPlatform'
doctrine查找映射的实际文件夹可能不同,请查看api/config/packages/doctrine.yaml
或者配置在何处。

XML存储在何处?您是否配置了条令映射以便它读取该文件?是的,映射很好。它们经过验证,我可以在创建自己的CRUD系统时创建并保存实体实例。是的,它保护了$name属性,该属性在示例类的代码部分中指出
<?php
declare(strict_types=1);

namespace ApiPlatform;

use ApiPlatform\Core\Annotation\ApiProperty;
use ApiPlatform\Core\Annotation\ApiResource;
use Entity\Example as EntityExample;
use Ramsey\Uuid\UuidInterface;

/**
  * @ApiResource(
  *     normalizationContext={"groups"={"read"}},
  *     denormalizationContext={"groups"={"write"}}
  * )
 */
class Example extends EntityExample
{
    /**
     * @ApiProperty(identifier=true)
     * @var UuidInterface
     */
    protected $uuid;

    /**
     * @Groups({"read", "write"})
     */
    private $name;

    /**
     * @return UuidInterface
     */
    public function getUuid() : UuidInterface
    {
        return $this->uuid;
    }

    /**
     * @return string
     * @Groups({"read", "write"})
     */
    public function getName() : string
    {
        return $this->name;
    }

    /**
     * @param UuidInterface $uuid
     */
    public function setUuid(UuidInterface $uuid) : void
    {
        $this->uuid = $uuid;
    }

    /**
     * @param string $name
     */
    public function setName(string $name) : void
    {
        $this->name = $name;
    }
}
api_platform:
    mapping:
        paths: ['%kernel.project_dir%/src/Entity']
api_platform:
    mapping:
        paths: ['%kernel.project_dir%/src/ApiPlatform']
api_platform:
    mapping:
        paths: 
      - '%kernel.project_dir%/src/Entity'
      - '%kernel.project_dir%/src/Resources/config/doctrine'
      - '%kernel.project_dir%/src/ApiPlatform'