小编Mat*_*t S的帖子

Doctrine ReflectionException属性不存在

我正在尝试在现有数据库之上添加Doctrine.我让Doctrine生成带注释的实体并从那里进行调整.当我尝试加载下面的实体时,我得到错误PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Property Users\\User::$resellerID does not exist'

class User
{
    /* ... */

    /**
     * @var \Doctrine\Common\Collections\Collection
     *
     * @ORM\ManyToOne(targetEntity="\Resellers\Reseller")
     * @ORM\JoinTable(name="reseller",
     *   joinColumns={
     *     @ORM\JoinColumn(name="resellerID", referencedColumnName="resellerID")
     *   },
     *   inverseJoinColumns={
     *     @ORM\JoinColumn(name="resellerID", referencedColumnName="resellerID")
     *   }
     * )
     */
    private $reseller;

    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

无论是userreseller表有resellerID列.我的理解是,对于连接ID列,您不会将ID列添加为实体类中的属性.是什么导致了ReflectionException?

php doctrine-orm

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

如何通过手表调用功能?

data: function ()  {
    return {
       questions: []
    }
},

watch: {
    questions : function(val, oldVal) {
        foo()
    }
},      

methods: {
    foo() {
        console.log("foo called");
    }
}
Run Code Online (Sandbox Code Playgroud)

产生错误: ReferenceError: foo is not defined

我也在看例子:http://vuejs-ru.github.io/vuejs.org/api/options.html#watch

这个字符串做什么?

handler: function (val, oldVal) { /* ... */ }, handler它的关键字?或者它可以是功能?

vue.js

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

PDO inTransaction()在数据库异常后返回false

inTransaction()如果抛出数据库异常,PDO 仍然在事务中返回false.这可能是特定于使用PostgreSQL.例如

try {
    $pdo->beginTransaction();
    $pdo->exec('SET TRANSACTION ISOLATION LEVEL SERIALIZABLE');
    // ...
    // Cause any PDO exception
    // ...
    $pdo->commit();
} catch (\Exception $e) {
    if ($pdo->inTransaction()) {
        // Never gets here
        $pdo->rollback();
    }
    throw $e;
}
Run Code Online (Sandbox Code Playgroud)

交易肯定没有结束,因为如果我开始另一个交易,我会得到一个例外,即已经有一个交易正在进行中.我没有测试过每种类型的异常,但它确实发生了SQLSTATE[40001]: Serialization failure主要的违规行为.这是预期的行为还是PHP中的错误?

知道回滚的唯一方法似乎是保持一个单独的变量来知道我在一个事务中,变得inTransaction()毫无用处.我注意到一些开源框架(如Doctrine)和应用程序(如Drupal)为事务状态保留了自己的变量. 为什么我们不能依赖驱动程序或数据库来告诉我们交易是否正在进行中?

PHP 5.5.32和PostgreSQL 9.4.发现了一个两年前相关的错误报告,该报告在旧版本的PHP中关闭.

php postgresql pdo transactions

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

RabbitMQ破坏了管道错误或丢失了消息

使用pika库BlockingConnection连接到RabbitMQ,我偶尔会在发布消息时出错:

致命套接字错误:错误(32,'破管')

这是一个非常简单的子进程,它从内存中的队列中获取一些信息,并将一个小的JSON消息发送到AMQP.当系统几分钟没有发送任何消息时,似乎只出现错误.

建立:

connection = pika.BlockingConnection(parameters)
channel = self.connection.channel()
channel.exchange_declare(
    exchange='xyz',
    exchange_type='fanout',
    passive=False,
    durable=True,
    auto_delete=False
)
Run Code Online (Sandbox Code Playgroud)

入队代码捕获任何连接错误并重试:

def _enqueue(self, message_id, data):
    try:
        published = self.channel.basic_publish(
            self.amqp_exchange,
            self.amqp_routing_key,
            json.dumps(data),
            pika.BasicProperties(
                content_type="application/json",
                delivery_mode=2,
                message_id=message_id
            )
        )

        # Confirm delivery or retry
        if published:
            self.retry_count = 0
        else:
            raise EnqueueException("Message publish not confirmed.")

    except (EnqueueException, pika.exceptions.AMQPChannelError, pika.exceptions.AMQPConnectionError,
            pika.exceptions.ChannelClosed, pika.exceptions.ConnectionClosed, pika.exceptions.UnexpectedFrameError,
            pika.exceptions.UnroutableError, socket.timeout) as e:
        self.retry_count += 1
        if self.retry_count < 5:
            logging.warning("Reconnecting and resending")
            if self.connection.is_open:
                self.connection.close()
            self.connect()
            self._enqueue(message_id, data) …
Run Code Online (Sandbox Code Playgroud)

python amqp rabbitmq pika

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

如何为现有用户更改会话cookie域

我的PHP Web应用程序目前将其会话cookie域设置为example.com.我想改成它.example.com.对于新访客,ini_set('session.cookie_domain', '.example.com')作品.对于在进行此更改之前已拥有PHPSESSID cookie的访问者,域保持旧值.如何在不要求当前用户删除其Cookie的情况下更改会话cookie上的域?

  • 我不能使用JavaScript来更新cookie,因为出于安全原因它是HTTPOnly.
  • 删除服务器上的会话不会重置整个cookie,它只会更新cookie值(保持域名相同).
  • 现代浏览器会在重新启动时保留会话,因此即使cookie在浏览器会话结束时设置为过期,浏览器会话也永远不会结束.

我能想到的唯一可能性是将cookie设置为过去过期,然后重定向以获取新的cookie.但我不知道哪些访问者的cookie域设置不正确.

php cookies session

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

使用pcntl_signal进行PHP滴答的"好"设置是什么?

我正在运行一个带有信号处理程序的PHP守护程序来进行有序清理并重新配置而不停止:

declare(ticks = 5);
function sig_handler($signo)
{
    ...
}
pcntl_signal(SIGHUP, 'sig_handler');
pcntl_signal(SIGINT, 'sig_handler');
...
Run Code Online (Sandbox Code Playgroud)

tick是由声明块中的解析器执行的每N个低级别可勾选语句发生的事件...并非所有语句都是可勾选的.通常,条件表达式和参数表达式不可选.

如果我们声明ticks = 1那么将在执行PHP代码的大多数行之间检查信号,这似乎是低效的.所以,

  • 如果我们声明ticks = 5,这是否意味着我们有五分之一的机会信号处理程序根本不会被调用?
  • 如何确定一致但有效的设置?
  • 阻塞调用期间会发生什么,例如数据库查询?信号在返回时是丢弃还是被处理?

(旁注:正式规范甚至不那么具体,因为这可能是依赖于解释器的.)

php daemon pcntl

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

为什么在使用不同PC但配置相同的情况下MIME类型不同?

我创建了一个函数来检查文件扩展名和导入的Excel文件。我在2台不同的PC上运行了相同的源代码。

PC-1配置:

  • 赢7 64位
  • XAMPP与PHP 7.0.x
  • 浏览器Google Chrome
  • 已安装Microsoft Office 2013

PC-2配置:

  • 赢10 64bit
  • XAMPP与PHP 7.1.x
  • 浏览器Google Chrome
  • 打开Office安装。未安装MS Office

我的Excel文件是由Google Spreadsheet创建的,并作为扩展名为.xlsx的MS Office文件导出。

在PC-1中,当我调试$_FILES['file']['type'];值时,得到扩展名:

'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
Run Code Online (Sandbox Code Playgroud)

但是在PC-2上,我收到了:

'application/octet-stream'
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么使用相同的源,相同的导入文件,只是在不同的环境下,调试输出是否显示不同的文件扩展名?是安装MS Office的原因吗?

php excel import-from-excel google-sheets phpexcel

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

为什么atttypmod与character_maximum_length不同?

我将一些information_schema查询转换为系统目录查询,并且字符最大长度得到了不同的结果。

SELECT column_name, 
    data_type , 
    character_maximum_length AS "maxlen"
FROM information_schema.columns 
WHERE table_name = 'x'
Run Code Online (Sandbox Code Playgroud)

返回我期望的结果,例如:

city    character varying   255
company character varying   1000
Run Code Online (Sandbox Code Playgroud)

等效目录查询

SELECT attname,
       atttypid::regtype  AS datatype,
       NULLIF(atttypmod, -1) AS maxlen
FROM   pg_attribute
WHERE  CAST(attrelid::regclass AS varchar) = 'x'
AND    attnum > 0
AND    NOT attisdropped
Run Code Online (Sandbox Code Playgroud)

似乎返回每个长度+ 4:

city    character varying   259
company character varying   1004
Run Code Online (Sandbox Code Playgroud)

为什么会有所不同?总是简单地从结果中减去4是否安全?

postgresql information-schema postgresql-9.4

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

检查产品是否具有等级定价

我还不知道Magento API的知识,所以我不知道在哪里搜索.我在文档中发现getTierPriceHtml($product)但这对我没有帮助.

那么,是否有一个函数可以调用我的$ product对象(在模板中)并检查产品是否具有层级定价?如果没有直接功能,那么简短的解决方法也会有所帮助.

我试过if (getTierPriceHtml($product) != null)....但是这样做不起作用,无论如何都是一种非常丑陋的方法.

php magento

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

服务器发送的事件通过清漆代理

我有一个在Varnish代理后面运行的网站.为服务器发送的事件打开的任何连接都不会获取任何内容,也不会关闭.Varnish似乎在将内容转发到浏览器之前等待内容流结束.并且它保持连接对服务器开放,直到内容结束.这两个问题都与服务器发送的事件不兼容.

如何配置Varnish立即将内容刷新到浏览器并在浏览器关闭其连接时关闭与服务器的连接?

或者我可以动态地指示Varnish完全作为连接的传递,就好像它甚至不存在一样?我可以在非代理系统上运行完全相同的Web应用程序,没有任何问题.而且我无法在此设置中完全绕过Varnish(例如,不同的端口).

html5 varnish server-sent-events

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

如何设置 TODO 评论自动完成

有人可以解释 intellij 中 todo 可选选项卡的模式吗 在此处输入图片说明

例如:如果我输入“todo”,那么我希望“todo”标签应该输出:

//todo this is your code here  
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

intellij-idea todo

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

CSS Less - 定义封装在其他类中的类

这就是我需要用CSS实现的东西Less:我需要定义一个封装在其他类中的类.

CSS

.class1{ . . .}
.class1 .class2{ . . .}
Run Code Online (Sandbox Code Playgroud)

在Less中,我知道如何定义:

.class1{&.class2{. . .}} 
Run Code Online (Sandbox Code Playgroud)

但这与此相同

.class1{}
.class1.class2{}
Run Code Online (Sandbox Code Playgroud)

如何使用Less定义第一个CSS示例?

css less

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

TensorFlow Keras 返回多个预测,同时期待一个

我正在学习 TensorFlow 和 LSTM,我想知道为什么当我训练它返回一个值时,我的预测输出有多个值。我的目标是在使用数组进行情感分析训练后获得 0 到 1 之间的单个值。

训练输入数据如下所示:

[[59, 21, ... 118, 194], ... [12, 110, ... 231, 127]]
Run Code Online (Sandbox Code Playgroud)

所有输入数组的长度相同,用 0 填充。训练目标数据如下所示:

[1.0, 0.5, 0.0, 1.0, 0.0 ...]
Run Code Online (Sandbox Code Playgroud)

模型:

model = Sequential()
model.add(Embedding(input_length, 64, mask_zero=True))
model.add(LSTM(100))
model.add(Dense(1, activation=tf.nn.sigmoid))
Run Code Online (Sandbox Code Playgroud)

为什么预测似乎一次评估每个单独的值而不是整个数组?

model.predict([192])
# Returns [[0.5491102]]
model.predict([192, 25])
# Returns [[0.5491102, 0.4923803]]
model.predict([192, 25, 651])
# Returns [[0.5491102, 0.4923803, 0.53853387]]
Run Code Online (Sandbox Code Playgroud)

我不想取输出的平均值,因为输入数组中的值之间的关系对于情感分析很重要。如果我正在训练预测单个值,我不明白为什么不输出单个值。我是 TensorFlow、Keras 和分层神经网络的新手,所以我确定我遗漏了一些明显的东西。

python machine-learning lstm keras tensorflow

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