小编Lee*_*vis的帖子

如何根据ids或对象数组使用Laravel 4.1执行批量删除?

我只是想知道它是否可能.

我知道当你要插入多行时,你可以构建一个数组并执行以下操作:

DB::table('some_table')->insert($array);
Run Code Online (Sandbox Code Playgroud)

但据我所知,删除操作似乎不太可能,我想知道是否有人知道如何做某些事情:

DB::table('some_table')->delete($array);
Run Code Online (Sandbox Code Playgroud)

php arrays orm eloquent laravel-4

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

Solr"未定义的字段文本"

我最近将我的solr实例从1,4升级到3.6.但是,每当我更新索引时,我现在似乎在我的日志中收到"未定义的字段文本"严重消息.

我的模式中有文本字段(从版本1.4开始有效),但以前从未将其声明为字段类型.3.6中有变化吗?

我的架构在这里>> http://pastebin.com/KrCVab0U

SEVERE: org.apache.solr.common.SolrException: undefined field text
        at org.apache.solr.schema.IndexSchema.getDynamicFieldType(IndexSchema.java:1330)
        at org.apache.solr.schema.IndexSchema$SolrQueryAnalyzer.getAnalyzer(IndexSchema.java:408)
        at org.apache.solr.schema.IndexSchema$SolrIndexAnalyzer.reusableTokenStream(IndexSchema.java:383)
        at org.apache.lucene.queryParser.QueryParser.getFieldQuery(QueryParser.java:574)
        at org.apache.solr.search.SolrQueryParser.getFieldQuery(SolrQueryParser.java:206)
        at org.apache.lucene.queryParser.QueryParser.Term(QueryParser.java:1429)
        at org.apache.lucene.queryParser.QueryParser.Clause(QueryParser.java:1317)
        at org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:1245)
        at org.apache.lucene.queryParser.QueryParser.TopLevelQuery(QueryParser.java:1234)
        at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:206)
        at org.apache.solr.search.LuceneQParser.parse(LuceneQParserPlugin.java:79)
        at org.apache.solr.search.QParser.getQuery(QParser.java:143)
        at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:105)
        at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:165)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
        at org.apache.solr.handler.PingRequestHandler.handleRequestBody(PingRequestHandler.java:67)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
        at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:679)
Run Code Online (Sandbox Code Playgroud)

java tomcat solr

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

背景图像不显示在Chrome浏览器中

我创建了一个小的搜索小部件,但是通过chrome查看它时不会出现背景.我已经测试了IE,FF和safari,它们都显得很好.

http://paradigmsearch.co.uk/widget/?id=1

我通常不愿意在SO上放置布局问题.但是,我已经讨论了一段时间了.

在元素上:

<div class="widget" id="id_300x250">
Run Code Online (Sandbox Code Playgroud)

我正在应用以下CSS定义

.widget {
  font-family: arial;
  height: 250px;
  width: 300px;
  border: none;
  background: url('/uploads/widget_background/cached/proportional/300x250/1_512648b566578.png') no-repeat center center;
}
Run Code Online (Sandbox Code Playgroud)

背景只是不可见.如果这是一个非常愚蠢的标记/ css疏忽,那么我道歉.

目前使用的是Chrome浏览器版本25.0.1364.172m

html css html5 google-chrome

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

关联的Doctrine postLoad事件

我目前有一个实体,我想在加载时略微修改.此修改将是一次性更改,然后将与实体一起保留在新字段中.

澄清我当前的目标:实体是"位置"并构成嵌套集的一部分.它有一个名称,lft/rgt值和一个Id.我使用此实体执行的一项计算成本高昂的任务是获取完整的位置路径并将其显示为文本.例如,对于位置实体"滑铁卢",我想显示为"滑铁卢|伦敦|英国".这涉及遍历整个集合(到根节点).

为了降低这个成本,我在Location实体上创建了一个可以用这个值标记的新字段(并在/当位置(或树中的任何位置)名称被修改时更新).考虑到我的应用程序处于实时状态,我需要避免将其作为一个关闭过程运行,因为它会对数据库产生相当密集的一次性命中,而是我想在每个位置应用此更新(不带该值已加载.我认为Doctrine的postLoad事件机制对于实现这一目标是完美的,但是..

我的应用程序不直接加载Location实体,它们将始终是关系的反面.这是思想,以及教义的postLoad事件:

  • 不加载(允许访问)任何关联数据
  • 仅针对拥有实体而被解雇

我无法轻轻地进行这些修改.

有人对此有任何建议或经验吗?

php orm doctrine-orm

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

无法将Facebook的主要广告发送到我们订阅的终端

我正在尝试让Facebook发送所有潜在客户,因为他们实时注册到订阅的终端.Facebook在他们的文档中提到,通过从新的主要广告服务设置实时更新,可以实现这一点.

https://developers.facebook.com/docs/marketing-api/guides/lead-ads/v2.5#setting-up-realtime-updates

然而,经过几个小时试图整合这个,我没能让它工作.以下是我迄今为止所遵循的过程无济于事.

设置应用程序

我已经设置了一个Facebook应用程序(423332064458136),该应用程序目前与我的个人帐户绑定.此应用程序是实时的,但不在任何平台上运行,因此不需要通过审核批准(据我所知).

我已经使用应用程序ID和应用程序密钥为此应用程序注册了leadgen回调.这是使用以下curl请求实现的.

curl \
-F "object=page" \
-F "callback_url=https://leadr.co.uk/external/handle-fb.php" \
-F "fields=leadgen" \
-F "verify_token=abc123" \
-F "access_token=423332064458136|<APP_SECRET>" \
"https://graph.facebook.com/v2.5/423332064458136/subscriptions"
Run Code Online (Sandbox Code Playgroud)

注册后我收到了{success:true}回复.要确认这一点,使用GraphAPI资源管理器中的应用程序令牌,我在以下路径中运行了一个请求:

/ 423332064458136 /订阅

并收到回复:

{
  "data": [
    {
      "object": "page",
      "callback_url": "https://leadr.co.uk/external/handle-fb.php",
      "fields": [
        "leadgen"
      ],
      "active": true
    }
  ],
}
Run Code Online (Sandbox Code Playgroud)

在位置https://leadr.co.uk/external/handle-fb.php如果需要,我正在响应hub_challenge,并另外记录通过php://输入发送到文本文件的所有内容.

设置潜在客户广告

我使用Facebook文档中的说明在VoucherSelector页面(https://www.facebook.com/permalink.php?story_fbid=1009785315719107&id=140148862682761)上设置了主要广告:https://developers.facebook.com/ docs/marketing-api/guides/lead-ads/v2.5.

目前这已设置为无效,因为我们不希望在此测试阶段花费任何预算.但是,据了解,帐户仍然可以使用给定的URL进行注册(上图).

然后,我们使用页面访问令牌将此页面订阅到我们的应用程序.使用graphAPI Explorer我选择了我们的应用程序,然后获得了voucherselector页面的页面访问令牌.然后我运行以下请求将页面订阅到我们的应用程序.

curl \
-F "access_token=<PAGE_ACCESS_TOKEN>" \
"https://graph.facebook.com/v2.5/140148862682761/subscribed_apps"
Run Code Online (Sandbox Code Playgroud)

这样做我收到了{success:true}回复.通过在同一端点运行GET请求,我收到如下响应:

{
  "data": [
    {
      "category": "Business",
      "link": "https://www.facebook.com/games/?app_id=423332064458136",
      "name": "leadR - Lead …
Run Code Online (Sandbox Code Playgroud)

facebook facebook-graph-api facebook-graph-api-v2.4

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

ZeroMQ PUB/SUB无法使用PHP

我目前正在处理一个相当大的数据处理任务,需要拆分和分配处理.我有一个使用ZeroMQ的PUSH/PULL机制的完全工作的管道原型 - 正在发送"处理"数据并完成正常.

但是,一旦数据被扇出,并且处理完成,我需要指示工作者(在while/true循环中运行)终止.我认为使用ZMQ的PUB/SUB机制是明智的.但是,工作人员没有收到任何控制消息.

令人沮丧的是,如果我切换到PUSH/PULL机制,工作人员会收到消息并正确终止.

我在这里复制了原型中的一些代码:

http://pastebin.com/myZyWQ1E

您可以看到生产者(向工作人员发送数据的位)创建并绑定到控件套接字(第19行),工作者也会绑定(第53行).一旦从生产者完成工作,它通过控制套接字发送终止命令,工作人员继续循环并检查控制消息.不幸的是,第75行从未测试过,并且该过程继续循环.

// Control socket create / bind from producer
$this->controlSocket = $this->zmqContext->getSocket(ZMQ::SOCKET_PUB);
$this->controlSocket->bind('tcp://172.0.0.1:51001');

// Control socket create / bind from worker
$control = $this->getZmqContext()->getSocket(ZMQ::SOCKET_SUB);
$control->setSockOpt(ZMQ::SOCKOPT_SUBSCRIBE, '');
$control->connect('tcp://172.0.0.1:51001');
Run Code Online (Sandbox Code Playgroud)

php sockets zeromq

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

一个类中的闭包数组

看来你不能在类的范围内定义一组可调用方法.为什么不?

为什么这是有效的PHP(参见http://3v4l.org/1JeQr)

$methods = array(
    1 => function($subject, $value){
        return ($subject == $value);
    }
);

var_dump($methods[1]('a', 'a'));
Run Code Online (Sandbox Code Playgroud)

但不是这个(见http://3v4l.org/FL449)

class Foo {
    public static $methods = array(
        1 => function($subject, $value){
            return ($subject == $value);
        }
    );
}

var_dump(Foo::$methods[1]('a', 'a'));
Run Code Online (Sandbox Code Playgroud)

php

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

使用Doctrine ODM从mongodb文档中的数组中删除项目

我有一个包含以下结构的mongoDB文档:

{
        "_id" : ObjectId("537b9731fa4634134c8b45aa"),
        "kpis" : [
                {
                        "id" : 4,
                        "value" : 3.78,
                        "entered" : Timestamp(1401377656, 9)
                }
        ]
}
Run Code Online (Sandbox Code Playgroud)

我想删除ID为x的所有kpi文档。使用pull命令直接在数据库上执行此操作非常简单:

db.lead.update({}, {$pull:{"kpis":{id:5}}}, {multi:true});
Run Code Online (Sandbox Code Playgroud)

但是,我(几次)尝试使用教义ODM匹配此语法失败:

    $qb->update()
       ->field('kpis')
       ->pull($qb->expr()->field('kpis.id')->equals($kpi->getId()))
       ->multiple(true)
       ->getQuery()
       ->execute();

    // I've also tried..

    $qb->update()
       ->field('kpis')
       ->pull($qb->expr()->field('kpis')->elemMatch(
            $qb->expr()->field('kpis.id')->equals($kpi->getId())
        ))
       ->multiple(true)
       ->getQuery()
       ->execute();
Run Code Online (Sandbox Code Playgroud)

什么都没有删除。我是否正确使用查询生成器?

php doctrine mongodb doctrine-odm

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

正则表达式新秀需要帮助

我对正则表达式完全没用,任何建议都非常感激.

$url = 'http://somedomain.com?var=<##var##>&var2=<##var2##>';
echo preg_replace('^<##(.*)##>$', '', $url);
Run Code Online (Sandbox Code Playgroud)

试图去除(和包括)<##和##>之间的任何东西.所以我的结果是:

http://somedomain.com?var=&var2=
Run Code Online (Sandbox Code Playgroud)

谢谢

php regex

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