小编nic*_*ram的帖子

Symfony 4序列化实体没有关系

我必须记录每个实体的更改。我有侦听器,用于侦听preRemove,postUpdate和postDelete上的事件。我的实体AccessModule有关系:

App \ Entity \ AccessModule.php

/**
 * @ORM\OneToMany(targetEntity="App\Entity\AccessModule", mappedBy="parent")
 * @ORM\OrderBy({"id" = "ASC"})
 */
private $children;

/**
 * @ORM\ManyToOne(targetEntity="App\Entity\AccessModule", inversedBy="children")
 * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", nullable=true)
 */
private $parent;

/**
 * @ORM\ManyToMany(targetEntity="App\Entity\AccessModuleRoute", inversedBy="access_modules")
 * @ORM\JoinTable(name="access_routes",
 *     joinColumns={@ORM\JoinColumn(name="access_module_id", referencedColumnName="id")},
 *     inverseJoinColumns={@ORM\JoinColumn(name="route_id", referencedColumnName="id")})
 *
 */
private $routes;
Run Code Online (Sandbox Code Playgroud)

在侦听器中: App \ EventListener \ EntityListener.php

use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\Encoder\XmlEncoder;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;


    $encoders = [new XmlEncoder(), new JsonEncoder()];
    $normalizer = new ObjectNormalizer();

        $normalizer->setCircularReferenceHandler(function ($object) {
            return $object->getId();
        });

    $this->serializer = new Serializer([$normalizer], $encoders);


public function createLog(LifecycleEventArgs …
Run Code Online (Sandbox Code Playgroud)

serialization entity doctrine-orm symfony4

5
推荐指数
2
解决办法
4099
查看次数

symfony 学说 QueryBuilder 到数组结果

我想从学说查询中获取数组。\n我有自引用实体

\n\n

应用程序\实体\访问模块

\n\n
/**\n * @ORM\\ManyToOne(targetEntity="App\\Entity\\AccessModule", inversedBy="children")\n * @ORM\\JoinColumn(name="parent_id", referencedColumnName="id", nullable=true)\n */\nprivate $parent;\n\n/**\n * @ORM\\OneToMany(targetEntity="App\\Entity\\AccessModule", mappedBy="parent", fetch="EAGER")\n * @Serializer\\MaxDepth(2)\n */\nprivate $children;\n\n\n/**\n * AccessModule constructor.\n */\npublic function __construct()\n{\n    $this->children = new ArrayCollection();\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

在这个存储库中

\n\n

应用程序\\实体\\AccessModuleRepository

\n\n
 public function findAllArray()\n{\n    return $this->createQueryBuilder(\'a\')\n        ->getQuery()\n        ->getResult();\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这返回具有子级和父级的对象的集合。但是,当我想将此查询作为数组获取时,->getArrayResult()我仅获取包含“id”和“name”的数组,而没有子数组“children”和“parent”。

\n\n

返回 $this->createQueryBuilder(\'a\')->getQuery()->getArrayResult();

\n\n
array:3 [\xe2\x96\xbc\n 0 => array:2 [\xe2\x96\xbc\n   "id" => 2\n   "name" => "Common module"\n  ]\n  1 => array:2 [\xe2\x96\xbc\n    "id" => 3\n    "name" => "User Module"\n ]\n 2 => …
Run Code Online (Sandbox Code Playgroud)

doctrine query-builder symfony

2
推荐指数
1
解决办法
2万
查看次数

Angular 2/4如何将多个标头添加到http帖子

我有问题为html帖子添加额外的标题.与curl一起工作非常像邮递员.我无法添加授权标头来发布请求.

我的问题类似于/sf/ask/2758588941/

我的代码:

 getToken(){

let headers = new Headers;
headers.append('Authorization', 'Basic ' + btoa(Spotify.clientId + ':' + Spotify.clientSecret));
headers.append('Content-Type', 'application/x-www-form-urlencoded');

let options = new RequestOptions({ headers: headers });


let params = new URLSearchParams();
params.append('grant_type', 'client_credentials');

 console.log(

  this.http.post(Spotify.tokenUrl, params.toString(), options).subscribe()

)  
}
Run Code Online (Sandbox Code Playgroud)

现在,当我试图得到这个时,没有添加这两个标题

OPTIONS /api/token HTTP/1.1
Host: accounts.spotify.com
Connection: keep-alive
Access-Control-Request-Method: POST
Origin: http://172.21.7.171:4200
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, 
  like Gecko) Chrome/59.0.3071.86 Safari/537.36
Access-Control-Request-Headers: authorization
Accept: */ *
Referer: http://172.21.7.171:4200/
Accept-Encoding: gzip, deflate, br
Accept-Language: pl,en;q=0.8,en-US;q=0.6
Run Code Online (Sandbox Code Playgroud)

但是,当我评论Authorization标头时,会添加Content-Type并获取一个错误为400的get invalid_client …

ajax post spotify cors angular

1
推荐指数
1
解决办法
2万
查看次数