小编str*_*ker的帖子

Doctrine2将实体导出到数组

我有Product实体与多对一的Category实体.我需要Product在会议中存储.首先,我尝试\Serializable在Product 上实现接口.我该如何序列化我的相关Category实体?我还应该实现\Serializable界面吗?

我读过,学说中的序列化是非常痛苦的操作,我想到这个:

我们可以从实体获得原始价值吗?确切地说,数据存储在数据库中.如果我们可以获得这个值,我们可以将它存储在任何地方并重新创建对象!

我阅读了doctrine2代码并找到了方法,Doctrine\ORM\Internal\Hydration\ObjectHydrator:hydrateRowData但它受到了保护.这样做有公共API吗?

更新:

我只是复制并集成来自BasicEntityPersister的一些代码,它似乎工作.

    $product = $productsRepository->find($id);

    if (!$product) {
        throw $this->createNotFoundException('No product found for id ' . $id);
    }

    $uow = $em->getUnitOfWork();
    $entityPersister = $uow->getEntityPersister(get_class($product));
    $classMetadata = $entityPersister->getClassMetadata();

    $originalData = $uow->getOriginalEntityData($product);

    $result = array();
    foreach ($originalData as $field => $value) {
        if (isset($classMetadata->associationMappings[$field])) {
            $assoc = $classMetadata->associationMappings[$field];

            // Only owning side of x-1 associations can have a FK column.
            if ( ! …
Run Code Online (Sandbox Code Playgroud)

php doctrine doctrine-orm

14
推荐指数
2
解决办法
1万
查看次数

网站上的Google Chrome扩展程序串口

我使用chrome.serial与COM端口上的设备进行通信,我需要在我的网站上为javascript提供基本API.首先尝试使用content_script + messaging,但我无法使用serial权限,content_script因为其中一个需要扩展才能打包app,另一个需要扩展.我可以解决这个问题吗?

google-chrome serial-port google-chrome-extension

8
推荐指数
1
解决办法
1万
查看次数

Solr索引按查询更新

我需要经常在solr中更新大量文档.例如,为user_id = 5设置"online"= true,依此类推.但是通过http处理程序的索引速度非常慢.Solr支持通过查询删除文件,有没有办法通过查询更新?

solr

7
推荐指数
2
解决办法
1万
查看次数

JMSSerializerBundle复杂生成的值

我需要在symfony 2上为我的网站实现RESTful API,所以我使用FOSRestBundle + JMSSerializerBundle

我的实体有这样的序列化器yml:

Acme\DemoBundle\Entity\Product:
    exclusion_policy: ALL
    accessor_order: custom
    custom_accessor_order: [id, title]
    properties:
        id:
            expose: true

        title:
            expose: true

    virtual_properties:
        getMainPhoto:
            serialized_name: photo
Run Code Online (Sandbox Code Playgroud)

问题是getMainPhoto返回我的网址到完整大小的图像.我希望在向api客户端发送响应之前预处理此URL,我可以生成新的url来调整此类映像的大小.我已经在sf2中有服务可以完成这项工作:

$resized_url = $someService->generateResizedUrl($item->getMainPhoto(), 640, 480);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在JMSSerializer中使用此服务.也许在发送响应之前有一些FOSRestBundle\JMSSerializerBundle的回调?

symfony fosrestbundle jmsserializerbundle

6
推荐指数
1
解决办法
1845
查看次数

SonataAdminBundle model_type值以过滤器形式过滤

我有这样的领域

    /**
     * @ORM\ManyToOne(targetEntity="Town")
    **/
    protected $town;
Run Code Online (Sandbox Code Playgroud)

和Admin类有这样的方法

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
    {
        $datagridMapper
        ...
        ->add('town', null, array('label' => 'Town'), null, array('expanded' => true, 'multiple' => true))
        ;
    }
Run Code Online (Sandbox Code Playgroud)

它给了我这样的过滤器:

symfony2 SonataAdminBundle与教义实体的完整示例 我的问题是:我可以为Town实体检索设置自定义sql\dql 吗?例如,只选择ID为IN(1,2)的城镇?

symfony symfony-sonata sonata-admin

5
推荐指数
1
解决办法
3557
查看次数

Python OpenCV 纯白背景

我有一个DIY的家庭照相馆来拍照。我希望它们处于纯白色背景 (#FFFFFF) 上,并且用户交互最少

这是我的原始图片(没有任何处理,只是来自相机的原始 JPG) 原始图像

我用opencv和Tkinter为UI实现了简单的python程序

1)获取物体的矩形(ROI)

我决定使用 UI 选择 ROI,也许稍后我会编写代码来自动识别照片上的对象。

选择投资回报率

2)使用 cv2.grabCut 函数,我尝试从该矩形中剪切背景

用矩形抓取剪切

cv2.grabCut(image, self.mask, rect, bgdmodel, fgdmodel, 5, cv2.GC_INIT_WITH_RECT)
Run Code Online (Sandbox Code Playgroud)

3)如果有必要,我为抓取创建自定义掩模,它可以提供更准确的对象提取

用面具抓剪

cv2.grabCut(image, self.mask, rect, bgdmodel, fgdmodel, 5, cv2.GC_INIT_WITH_MASK)
Run Code Online (Sandbox Code Playgroud)

4)在此步骤之后,我可以在我的对象所在的位置创建蒙版。我还将蒙版大小调整了 30px

mask = cv2.resize(mask, ( crop_img.shape[1] + 30,  crop_img.shape[0] + 30))
mask = mask[30 : crop_img.shape[0], 30 : crop_img.shape[1]]
Run Code Online (Sandbox Code Playgroud)

所以这个面具有更多的宽度和高度

对象掩码

5)我使用这个掩码进行 SeamlessClone 方法

src_bg = 255 * np.ones(self.src.shape, self.src.dtype)

width, height, channels = src_bg.shape
center = (int(height / 2), int((width / 2)))
output = cv2.seamlessClone(crop_img, src_bg, mask, center, cv2.MIXED_CLONE)
Run Code Online (Sandbox Code Playgroud)

并得到这样的结果: …

python opencv computer-vision

5
推荐指数
1
解决办法
3766
查看次数