小编Ocr*_*ius的帖子

使用zend framework 1.7.4进行文件上传

我正在尝试使用Zend Framework 1.7.4上传文件,但尚未成功.我已经阅读过Akrabat的教程,这很有帮助但是当我在我的项目中使用这些技术时,我无法让它工作.

php zend-framework file-upload zend-form

5
推荐指数
2
解决办法
3万
查看次数

DQL - 选择多个字段,但仅提取一个 - 隐藏结果集中的字段

给出以下DQL查询:

SELECT
    p,
    (p.views * 0.1) + (p.likes * 0.9) as ratingPhoto
FROM
    AppBundle:Photo p
ORDER BY
    ratingPhoto DESC
Run Code Online (Sandbox Code Playgroud)

我的结果集如下所示:

array (size=14)
  0 => 
    array (size=2)
      0 => object(Photo)
      'ratingPhoto' => string '1.42' (length=4)
  1 => 
    array (size=2)
      0 => object(Photo)
      'ratingPhoto' => string '1.31' (length=4)
...
Run Code Online (Sandbox Code Playgroud)

是否有任何DQL功能,以便我只检索Photo对象并从结果集中排除其他选定的字段?这是我期望的结果:

array (size=14)
  0 => object(Photo)
  1 => object(Photo)
...
Run Code Online (Sandbox Code Playgroud)

dql doctrine-orm

4
推荐指数
1
解决办法
1259
查看次数

Zend Framework 2中的服务实体管理器

我为我的模块编写了一个自定义服务.此服务提供公共静态函数,这些函数应验证给定的标记.

现在我想实现另一个公共静态函数,它检查是否存在Doctrine-Entity.对于这种情况,我需要在我的服务中使用对象管理器或服务定位器.

class ApiService 
{
    const KEY_LENGTH = 10;
    const USE_NUMBERS = true;
    const USE_CHARS = true;

    public static function isValid($apiKey) {
        $isValid = false;
        # more code tbd
        $isValid = self::exists($apiKey);
        return $isValid;
    }

    public static function exists($apiKey) {
    # Insert Object-Manager here

        $validator = new \DoctrineModule\Validator\ObjectExists(array(
           'object_repository' => $objectManager->getRepository('Application\Entity\User'),
           'fields' => array('email')
        )); 
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. 将我的函数实现为public static并将它们称为静态方法是"最佳实践"吗?

  2. 将对象管理器注入我的doesEntityExist()函数的最佳实践是什么?

doctrine-orm zend-framework2

3
推荐指数
1
解决办法
7971
查看次数

Zend Framework - 使用Controller返回图像/文件

我是Zend Framework 2的新手,只知道一些基础知识.我发现很难找到很多例子.

Quesiton:在数据库中获取BLOB字段并通过控制器显示它.例如:www.mysite.com/images/2将从数据库中检索BLOB并将其作为图像显示给用户,因此html标签<img src="http://www.mysite.com/images/2"/>将显示图像.

我通常在ASP.NET MVC中做,但不知道如何在这里做.如果有人能够告诉我如何实现它,我会很高兴.

假设我从数据库中获取了图像.

我设法找到了如何返回JSON并相信一些简单的东西会起作用.但找不到解决方案.我还需要发送这样的文件.

public function displayAction()
{
    $id = 10;
    $albumImage = $this->getAlbumImageTable()->getAlbumImage($id);

    if ($albumImages){
        //Show the image $albumImage
        //return JsonModel(array(...)) for json but for image ???
    } else{
        //Show some other image
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有人可以提供帮助,我将不得不承担责任.

提前致谢.

zend-framework2

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

在postLoad中加载Doctrine实体

我有一个实现postLoad生命周期事件方法的实体.此方法有条件地更新实体并尝试保存它.有点像:

    /** 
     * @PostLoad 
     */
    public function checkExpiryDate()
    {
        $currentDate = new App_Date();

        // Check the expiry date here
        if($currentDate->getTimestamp() > $this->getDateExpired()->getTimestamp()) {
            $this->Status = "expired";
            $this->ServiceLayer->saveEntity($this);
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

Call to a member function fetch() on a non-object in Doctrine/ORM/Internal/Hydration/ObjectHydrator.php on line 149
Run Code Online (Sandbox Code Playgroud)

看来我在postLoad期间无法保存实体.

我偶然发现了这张票,建议在新密钥下注册ObjectHydrator并在任何新查询期间指定保温器.

但是,我想知道是否有一种很好的方法可以在更抽象的层面上实现它; 每当在postLoad调度期间构建查询时,我想自动注册一个新的ObjectHydrator.

此外,任何人都可以首先简要解释为什么这是一个问题?从我可以看到,一旦使用保湿器就会删除查询,但是我不明白为什么这会在构建新查询时出现问题,即使重新使用保湿器也是如此.

感谢您的任何指示!

doctrine-orm

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

将ServiceLocator注入并使用到抽象的Zend\Form基类中

我创建了一个名为的抽象表单类AbstractApplicationForm.我希望通过Zend\ServiceManager\ServiceLocatorAwareInterface访问转换器来将服务定位器注入其中:

namespace Application\Form;

use Zend\Form\Form;
use Zend\ServiceManager\ServiceLocatorAwareInterface;
use Zend\ServiceManager\ServiceLocatorInterface;

abstract class AbstractApplicationForm 
    extends Form 
    implements ServiceLocatorAwareInterface
{
    protected $serviceLocator;
    protected $translator;

    public function setServiceLocator(ServiceLocatorInterface $serviceLocator)
    {
        $this->serviceLocator = $serviceLocator;
    }

    public function getServiceLocator()
    {
        return $this->serviceLocator;
    }       

    public function getTranslator()
    {
        if (!$this->translator) {
            $this->translator = $this->getServiceLocator()->get('translator');
        }

        return $this->translator;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的申请表扩展了这个类,如下所示:

namespace Trade\Form;

use Zend\Captcha;
use Zend\Captcha\Image;
use Zend\Form\Element;
use Application\Form\AbstractApplicationForm;

class MemberForm extends AbstractApplicationForm
{
    public function init()
    {
        $this->setAttribute('method', 'post');

        // Add …
Run Code Online (Sandbox Code Playgroud)

zend-form zend-framework2

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

如何使用Doctrine将变量传递给Orderby子句

我在尝试ORDER BY使用Doctrine 2 ORM 在DQL的子句中实现动态排序时遇到错误.

这是我的代码片段:

$queryBuilder = $categoryEntity->createQueryBuilder('category');

$queryBuilder->distinct();
$queryBuilder->join('Category\Entity\CategoryName', 'category_name', 'WITH', 'category.id = category_name.category');


if($column == 'status'){
    $queryBuilder->orderBy("category.status $order");
}else{
    $queryBuilder->orderBy("category_name.name $order");
}
Run Code Online (Sandbox Code Playgroud)

这会产生以下错误:

[语法错误]第0行,第189列:错误:字符串的预期结束,得到'ASC'

doctrine-orm

0
推荐指数
1
解决办法
1455
查看次数