我在用:
{{ asset('contact') }} (e.g.)
Run Code Online (Sandbox Code Playgroud)
生成我的联系页面的URL,输出:
http://localhost.project/contact.
Run Code Online (Sandbox Code Playgroud)
但我正处于发展环境中.
如何为开发环境制作资产显示网址?
应该是:
http://localhost.project/web/app_dev.php/contact
Run Code Online (Sandbox Code Playgroud)
不
http://localhost.project/web/contact
Run Code Online (Sandbox Code Playgroud) 我定义了两个查询构建器。
第一:返回用户的所有帐户。
秒数:按帐户返回所有用户交易。
第一的:
public function getAccountsList($user)
{
return $this->getAccountRepository()
->createQueryBuilder('a')
->select('a')
->where('a.user = :user')
->setParameter('user', $user)
->getQuery()
->getResult();
}
Run Code Online (Sandbox Code Playgroud)
第二:
public function getTransactionsList($user)
{
$accounts = $this->getAccountsList($user);
$query = $this->getTransactionRepository()
->createQueryBuilder('t')
->select('t')
->where('t.account IN (:accounts)')
->setParameter('account', $accounts)
->getQuery()
->getResult();
return $query;
}
Run Code Online (Sandbox Code Playgroud)
第一个工作完美,但第二个抛出错误:
无效参数:查询中未定义令牌帐户
如何修复它?
基于 DTO 创建了一个非常简单的资源。所有逻辑都将通过自定义提供DataProvider,并且该项目不使用注释。
资源的配置是:
<resources xmlns="https://api-platform.com/schema/metadata">
<resource class="App\Domain\Dto\ProductUpgradePrice">
<collectionOperations>
<collectionOperation name="get"/>
</collectionOperations>
<itemOperations>
<itemOperation name="get"/>
</itemOperations>
</resource>
</resources>
Run Code Online (Sandbox Code Playgroud)
实际的DTO是:
<?php declare(strict_types=1);
namespace App\Domain\Dto;
/** @psalm-immutable */
class ProductUpgradePrice
{
public function __construct(
public string $productId,
public int $regularPrice,
public int $upgradePrice
) {}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试时,GET /api/product_upgrade_prices我得到:
没有为 App\Domain\Dto\ProductUpgradePrice 类型的资源定义标识符
这是有道理的。
文档提到使用注释,@ApiProperty但正如我之前提到的,这个项目没有注释。(自从我发布问题以来,我提交了一个 PR 来更新文档,该问题已合并,所以希望未来的用户不会遇到同样的情况)
我尝试将其添加到资源配置中:
<property name="productId">
<attribute name="identifier">true</attribute>
</property>
Run Code Online (Sandbox Code Playgroud)
但得到了相同的结果。
在不使用注释的情况下如何配置它?