未找到对象,但在由 "new" 创建时有效
Object not found but working when created by "new"
正在运行:
use AppBundle\Entity\Product;
use AppBundle\Entity\ProductPriceAccept;
public function editAction(Product $product)
{
$ppa = new ProductPriceAccept();
// further some operations on $product
}
但它不想工作:
use AppBundle\Entity\Product;
use AppBundle\Entity\ProductPriceAccept;
public function editAction(Product $product, ProductPriceAccept $ppa)
{
$ppa->setPrice();
// further some operations on $product
}
我得到:
AppBundle\Entity\ProductPriceAccept object not found.
Entity\ProductPriceAccept.php 是:
// src/AppBundle/Entity/ProductPriceAccept.php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="Product_Price_Accept")
*/
class ProductPriceAccept
{
// ...
}
我有点困惑,因为通常类型提示对我来说效果很好,正如您所看到的,它在产品实体的类似情况下也能正常工作。第一个解决方案工作正常,但我想知道第二个解决方案是如何产生问题的。我清除了缓存,检查了拼写错误。不知道还能做什么。
读取单个参数,自动读取版本库
不止一个,需要一些帮助。
The id option specifies which placeholder from the route gets passed to the repository method used. If no repository method is specified, find() is used by default.
This also allows you to have multiple converters in one action:
因此,您需要为 ProductPriceAccept 显式 @ParamConverter - 您可能还需要 use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
行。
/**
* @Route("/blog/{id}/comments/{comment_id}")
* @ParamConverter("comment", class="SensioBlogBundle:Comment",
* options={"id" = "comment_id"})
*/
public function showAction(Post $post, Comment $comment)
{
}
来自:@ParamConverter.
正在运行:
use AppBundle\Entity\Product;
use AppBundle\Entity\ProductPriceAccept;
public function editAction(Product $product)
{
$ppa = new ProductPriceAccept();
// further some operations on $product
}
但它不想工作:
use AppBundle\Entity\Product;
use AppBundle\Entity\ProductPriceAccept;
public function editAction(Product $product, ProductPriceAccept $ppa)
{
$ppa->setPrice();
// further some operations on $product
}
我得到:
AppBundle\Entity\ProductPriceAccept object not found.
Entity\ProductPriceAccept.php 是:
// src/AppBundle/Entity/ProductPriceAccept.php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="Product_Price_Accept")
*/
class ProductPriceAccept
{
// ...
}
我有点困惑,因为通常类型提示对我来说效果很好,正如您所看到的,它在产品实体的类似情况下也能正常工作。第一个解决方案工作正常,但我想知道第二个解决方案是如何产生问题的。我清除了缓存,检查了拼写错误。不知道还能做什么。
读取单个参数,自动读取版本库
不止一个,需要一些帮助。
The id option specifies which placeholder from the route gets passed to the repository method used. If no repository method is specified, find() is used by default.
This also allows you to have multiple converters in one action:
因此,您需要为 ProductPriceAccept 显式 @ParamConverter - 您可能还需要 use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
行。
/**
* @Route("/blog/{id}/comments/{comment_id}")
* @ParamConverter("comment", class="SensioBlogBundle:Comment",
* options={"id" = "comment_id"})
*/
public function showAction(Post $post, Comment $comment)
{
}
来自:@ParamConverter.