小编Jas*_*wer的帖子

学说2:如何处理具有额外列的连接表

如何在Doctrine 2中设置具有额外列的连接表,或与其他属性的多对多关联?

many-to-many properties jointable doctrine-orm

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

memcached中的ZF2身份验证会话存储

在我们的Intranet应用程序中,我们使用SSO(单点登录)登录,而客户端和auth源应用程序上的会话都存储在memcached中.

会话设置为在垃圾收集器可能将其视为删除之前的12小时.两个应用程序都是使用ZF2编写的.

不幸的是,问题是,在一段时间后(我没有确切的值),浏览器会丢失导致重定向到auth origin的会话,其中会话仍处于活动状态,因此用户被重定向回客户端并且浏览器会话刷新.如果用户没有未保存的工作,这不是什么大问题,因为这两个重定向在1秒内发生,用户甚至可能没有注意到它们.

但是当用户有未保存的工作时,它确实是一个大问题,即使尝试保存它也会导致重定向,工作也就消失了.

以下是会话的配置Bootstrap.php:

class Module
{
    public function onBootstrap(MvcEvent $e)
    {
        // ...
        $serviceManager      = $e->getApplication()->getServiceManager();
        $sessionManager      = $serviceManager->get('session_manager_memcached');
        $sessionManager->start();
        Container::setDefaultManager($sessionManager);
        // ...
    }

    public function getServiceConfig()
    {
        return array(
            'factories' => array(
                // ...
                'session_manager_memcached' => function ($sm) {
                    $systemConfig = $sm->get('config');
                    $config = new SessionConfig;
                    $config->setOptions(array(
                        'phpSaveHandler' => 'memcache',
                        'savePath' => 'tcp://localhost:11211?timeout=1&retry_interval=15&persistent=1',
                        'cookie_httponly' => true,
                        'use_only_cookies' => true,
                        'cookie_lifetime' => 0,
                        'gc_maxlifetime' => 43200, // 12h
                        'remember_me_seconds' => 43200 // 12h
                    ));
                    return …
Run Code Online (Sandbox Code Playgroud)

php authentication session memcached zend-framework2

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

Make Doctrine以原始顺序添加实体

我有以下代码:

$em = $this->getDoctrine()->getManager();

$evaluation->getQuestions()->clear();

foreach ($questions_data as $data) {
    $id = (int) $data['id'];        

    if ($id > 0) {
        $question = $em->getRepository('MyBundle:Question')->find($id);

        if ($question)
            $evaluation->getQuestions()->add($question);
    }
}

$em->persist($evaluation);
$em->flush();
Run Code Online (Sandbox Code Playgroud)

这是$questions_data- array(['id' => 2], ['id' => 1], ['id' => 3]).
以下是教义如何将问题持久化到数据库:
在此输入图像描述

那么,如何让学说不排序问题呢?
Evaluation实体ManyToMany与实体有关系Question,所以ORDER BY无法帮助,因为表evaluations_questions是由Doctrine字段自动创建的,没有字段id.

php symfony doctrine-orm

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