<?php
declare(strict_types=1);
namespace App\Controller\User;
use App\Entity\User;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Attribute\CurrentUser;
#[Route('/users', name: 'user.')]
class UserController extends AbstractController
{
#[Route(name: 'list')]
public function list(#[CurrentUser] ?User $user, Request $request): Response {
dd($user->getFirstName());
}
Run Code Online (Sandbox Code Playgroud)
说的
Call to a member function getFirstName() on null
但我已获得授权。在 Symfony Profiler 中,它显示我已登录。
环境:PHP 8.0.11 Symfony 5.3.9
最近我们将应用程序升级到 PHP8。
由于PHP8引入了属性并doctrine/orm从版本开始支持它们,2.9因此利用此功能增量(即不是一次所有实体)将实体元数据更新为属性格式似乎是个好主意。
为此,我需要以某种方式注册两者Doctrine\ORM\Mapping\Driver\AnnotationDriver并Doctrine\ORM\Mapping\Driver\AttributeDriver解析元数据。
棘手的部分是为一组使用注释或属性修饰的实体注册两个解析器。从这一点来看,Doctrine\ORM\Configuration我所需要的似乎是不可能的。
我是否正确(假设这无法合理实现)或者可以通过某种不太黑客的方式来完成吗?
我正在使用拉拉维尔。我需要知道如何在 php 8 中使用属性编写 phpdoc。
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
//Some code
return [];
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下上面的代码如何用属性来编写吗?