Laravel post 请求传递 class 属性 另一个 class 的类型

Laravel post request pass class with property with type of another class

我在 Laravel 中有控制器:

public function save(Request $request, ClientOrderDTO $clientOrderDTO){
        
}

上述 DTO 的定义如下:

use App\DTO\ClientDTO;

class ClientOrderDTO
{
    public $id;
    public $userId;
    public ClientDTO $client;
}

而 ClientDTO 看起来像:

class ClientDTO
{
    public $id;
}

当我想从 Angular 发送 post 请求时:

save(orderDTO: OrderDTO) {
    return this.httpClient.post<RespDTO>(`${environment.apiUrl}/client-order/save`, orderDTO);
  }

我收到错误:

"message": "syntax error, unexpected 'ClientDTO' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST)",
    "exception": "ParseError",
    "file": "C:\xampp\htdocs\crm-api\app\DTO\ClientOrderDTO.php",

我不能在 class 中使用另一个 class 类型的 属性。例如在 C# 中什么是安静流行的。

我必须将 PHP 从 7.3 版本迁移到 7.4 版本。从版本 7.4 PHP 开始允许声明属性类型