小编rap*_*2-h的帖子

如何处理包含500多个项目的Symfony表单集合

我有表单集合,需要处理超过500个实体实例.在我将超时增加到60秒并且增加了max_input_vars形式工作之后,但是它的速度有多慢.渲染形式很慢,但提交这个大形式是痛苦的屁股.

我正在考虑创建纯HTML格式,但还有其他一些缺点作为验证.那么,是否有任何正确的方法通过symfony形式处理大量数据?

控制器:

public function ratesCardAction() {
    $bannerList = $this->data;

    $em = $this->getDoctrine()->getManager();
    $form = $this->createForm(new AdvertiserRatesType($bannerList));
    if ('POST' == $this->getRequest()->getMethod()) {
        $form->handleRequest($this->getRequest());
        $advertiserCampaign = $form->getData();
        if ($form->isValid()) {
            foreach ($advertiserCampaign['campaignsAdZones'] as $campaignAdZone) {
               $em->persist($campaignAdZone);
            }
            $em->flush();
        }
    }

    return array(
        'form'   => $form->createView()
    );
}



class AdvertiserRatesType extends AbstractType {

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder ->add('campaignsAdZones', 'collection', array(
            'type'   => new AdvertiserRatePerCountryType(),
            'data'   => $this->rates,
            'empty_data'  => null,
            'options'  => array(
                'attr' => array('class' => 'campaignAdZoneItem') …
Run Code Online (Sandbox Code Playgroud)

php forms bulkinsert bulk symfony

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

如何在PHP函数中获取当前递归级别

如何在PHP函数中获取当前的递归级别?我的意思是,有这样的"神奇"(或最终正常)功能:

function doSomething($things) {
    if (is_array($things)) {
        foreach ($things as $thing) {
            doSomething($thing);
        }
    } else {
        // This is what I want :
        echo current_recursion_level();
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用另一个函数参数($level在本例中):

function doSomething($things, $level = 0) {
    if (is_array($things)) {
        foreach ($things as $thing) {
            $level++;
            doSomething($thing, $level);
        }
    } else {
        echo $level;
    }
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有内置函数(或技巧)来做到这一点.也许有些东西debug_backtrace(),但它似乎不是一个简单或快速的解决方案.

我没有找到这个信息,也许它根本就不存在......

php recursion

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

仅在git push之后才重新验证opcache

我正在将PHP与OPcache一起使用。我只是git-push掌握将我的网站部署到生产环境中(不是真的,它只是在单元测试之后,但是没关系)。在php.ini文件中,OPcache设置与“时间”和“频率”有关。但是我只想在git pull我的服务器后重置缓存。

所以我想我只需要opcache_reset在生产服务器上进行git-pull之后调用并将其设置opcache.validate_timestamps0(从不重置缓存)

我没有阅读过有关该方法的任何内容,因此我对此表示怀疑:我不知道这是否是一个好习惯。我错过了什么?有没有风险或可以吗?

非常感谢!

PS:我使用的是PHP框架和作曲器(composer install在git-pull之后运行)

php git optimization composer-php opcache

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

如何在流明5.2中设置时区?

我没有找到关于如何在Lumen 5.2中设置默认时区的任何相关信息(仅限技巧).有没有干净的方法来做到这一点?

php laravel lumen lumen-5.2

6
推荐指数
4
解决办法
9324
查看次数

仅使用Hyper显示响应正文显示正文的大小

我尝试使用Hyper将URL的内容(正文)显示为文本

extern crate hyper;

use hyper::client::Client;
use std::io::Read;

fn main () {

    let client = Client::new();
    let mut s = String::new();

    let res = client.get("https://www.reddit.com/r/programming/.rss")
                    .send()
                    .unwrap()
                    .read_to_string(&mut s)
                    .unwrap();

    println!("Result: {}", res);

}
Run Code Online (Sandbox Code Playgroud)

但是运行此脚本只会返回正文的大小:

Result: 22871
Run Code Online (Sandbox Code Playgroud)

我做错了什么?我误解了什么吗?

rust hyper

6
推荐指数
2
解决办法
1712
查看次数

过滤,直到第一次满足某些条件

这不是一个真实世界的例子,我过度简化了它.给这个数组:

const a = [1,2,3,4,5,6,7,8,4,5]; // Etc. Random numbers after.
Run Code Online (Sandbox Code Playgroud)

我想过滤它只有那些匹配一个模式(比如说这个简单的例子大于3),直到第一次追加(比方说元素大于7)

所以对于这个例子,我只想要:[4,5,6,7].但是filter,我会有尾随45:

const a = [1,2,3,4,5,6,7,8,4,5].filter((v) => v > 3)
// returns: [4, 5, 6, 7, 8, 4, 5]
Run Code Online (Sandbox Code Playgroud)

所以我想从一个数组中获取项目并在一个条件后最终停止.如何在第一次不满足条件后过滤然后停止?(没有for循环,我想保持它"功能性")

const a = [1,2,3,4,5,6,7,8,4,5,1,2,976,-1].awsome_function();
// returns: [4, 5, 6, 7, 8] because it stopped after the first 8.
Run Code Online (Sandbox Code Playgroud)

javascript

6
推荐指数
2
解决办法
1103
查看次数

$ zopim未定义

阅读Zopim(又名Zendesk Chat)的文档:

必须在实时聊天脚本之后插入API调用并将其包装在$ zopim(function(){...})中

所以我在headHTML的一部分中有一个Zopim脚本:

<script>/*<![CDATA[*/window.zEmbed||function(e,t){ ... }("https://...);
/*]]>*/</script>
Run Code Online (Sandbox Code Playgroud)

然后我在HTML文档的末尾添加了这个:

$zopim(function() {
  $zopim.livechat.setName('Logged in name');
  $zopim.livechat.setEmail('user@somewhere.com');
});
Run Code Online (Sandbox Code Playgroud)

控制台说:

$ zopim未定义

我想我已正确遵循了说明.我错过了什么?

javascript zendesk zopim

6
推荐指数
2
解决办法
4478
查看次数

Nextjs公用文件夹

哪里是公众对nextjs项目文件夹?

我的意思是,是否有地方在那里我可以把favicon.png谷歌网站验证manifest.jsonrobots.txt等等?

reactjs next.js

6
推荐指数
5
解决办法
4500
查看次数

为什么GROUP BY在FULLTEXT INDEX上使用临时?

我正在使用这个表(MySQL/Engine:MyISAM):

CREATE TABLE `activities` (
  `id_activity` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `id_doc` int(10) unsigned NOT NULL DEFAULT '0',
  `node_id` tinytext NOT NULL,
  `title` tinytext NOT NULL,
  `name` tinytext NOT NULL,
  `keywords` tinytext NOT NULL,
  `page_type` tinytext NOT NULL,
  `page_screen_id` tinytext NOT NULL,
  `page_screen_question` tinytext NOT NULL,
  PRIMARY KEY (`id_activity`),
  KEY `name` (`name`(255)),
  FULLTEXT KEY `node_id` (`node_id`,`title`,`name`,`keywords`,`page_type`,`page_screen_id`,`page_screen_question`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)

(大约有100000行)

这是我的查询:

EXPLAIN SELECT 1
FROM `activities`
GROUP BY `node_id`, `title`, `name`, `keywords`, `page_type`, `page_screen_id`, `page_screen_question`;
Run Code Online (Sandbox Code Playgroud)
  • id:1
  • select_type:SIMPLE
  • 表:活动
  • 类型:全部 …

mysql optimization

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

Laravel:通知中的HTML

我正在使用默认通知系统(Laravel 5.3)发送电子邮件.我想在消息中添加HTML标记.这不起作用(它以纯文本显示强标签):

public function toMail($notifiable)
{
    return (new MailMessage)
                ->subject('Info')
                ->line("Hello <strong>World</strong>")
                ->action('Voir le reporting', config('app.url'));
}
Run Code Online (Sandbox Code Playgroud)

我知道这是正常的,因为文本显示在{{ $text }}邮件通知模板中.我尝试使用与csrf_field()帮助器相同的系统:

->line( new \Illuminate\Support\HtmlString('Hello <strong>World</strong>') )
Run Code Online (Sandbox Code Playgroud)

但它不起作用:它显示为纯文本.

我可以在不更改视图的情况下发送HTML标记吗?(我不想更改视图:保护文本适用于所有其他情况).希望它足够清楚,如果不是抱歉.

php notifications laravel laravel-5.3

5
推荐指数
4
解决办法
5160
查看次数