我必须记录每个实体的更改。我有侦听器,用于侦听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) 我想从学说查询中获取数组。\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}\nRun 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}\nRun Code Online (Sandbox Code Playgroud)\n\n这返回具有子级和父级的对象的集合。但是,当我想将此查询作为数组获取时,->getArrayResult()我仅获取包含“id”和“name”的数组,而没有子数组“children”和“parent”。
返回 $this->createQueryBuilder(\'a\')->getQuery()->getArrayResult();
\n\narray: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) 我有问题为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 …