小编Bla*_*sad的帖子

SonataMediaBundle:找不到文件/图像

我正在使用SonataMediaBundle和SonataAdminBundle以及Symfony 2.3.

当我尝试通过Sonata Admin界面上传图像时:

  1. 点击"添加新"(app_dev.php/admin/sonata/media/media/create)
  2. 点击"图片"(app_dev.php/admin/sonata/media/media/create?provider=sonata.media.provider.image&context=default)
  3. 浏览image.jpg文件并单击"创建"
  4. 这导致我进入编辑页面,我可以看到: Item "image.jpg" has been successfully created.

事实上:

  • 在文件夹中web\uploads\media\default\0001\01我有我的图像文件和3个拇指
  • media__mediaDB表中我有相应的行
  • 当我浏览web/uploads/media/default/0001/01/Firefox时,我可以看到我的图像
  • 相应的行显示在媒体列表中(在管理面板中)

但是:

  • 图像不会显示在媒体列表中(有一个正方形而不是拇指),也不会出现在图像编辑页面中(app_dev.php/admin/sonata/media/media/3/edit?provider=sonata.media.provider.image&context=default)

对于文件,情况更糟:

  1. 点击"添加新"(app_dev.php/admin/sonata/media/media/create)
  2. 点击"图片"(app_dev.php/admin/sonata/media/media/create?provider=sonata.media.provider.file&context=default)
  3. 浏览document.zip文件并单击"创建"

这会产生错误500 : The file "" does not exist. 并且DB中没有创建新行.


一块解决方案

对于图像问题,我注意到奏鸣曲管理员看的路径不是很好的:我看着它: http://myserver/uploads/media/default/0001/01/c35f187f1b405f4bfba8b962d83e5bbdccff54f9.jpeg

代替 http://myserver/myproject/web/uploads/media/default/0001/01/c35f187f1b405f4bfba8b962d83e5bbdccff54f9.jpeg

显然,这是由于config.yml的这一部分(如SonataMedia文档中所定义):

sonata_media
    cdn:
        server:
            path: /uploads/media
Run Code Online (Sandbox Code Playgroud)

我改为:

sonata_media
    cdn:
        server:
            path: /myproject/web/uploads/media
Run Code Online (Sandbox Code Playgroud)

它有效.但我不认为在那里硬编码是个好主意.我想有一个很好的理由为什么它在Sonata Doc中以这种方式编写,不是吗?

我的修改是否正确?如果没有,我该怎么办?

无论如何,它无法解决我的文件上传问题!关于这一点有什么想法吗?

symfony sonata-media-bundle

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

教义可责备: on="change" 不起作用,而 on="create" 和 "update" 起作用

我正在尝试结合 Doctrine 的扩展 Blameable 和 Softdeleteable:当我执行时$em->remove($myEntity);,我想获取字段deleteddeletedBy相应更新。

use Gedmo\Mapping\Annotation as Gedmo;

/**
 * @Gedmo\SoftDeleteable(fieldName="deleted", timeAware=false)
 */

[...]

/**
 * DateTime of softdeletion
 * @var \DateTime
 * 
 * @ORM\Column(name="deleted", type="datetime", nullable=true)
 * @Assert\DateTime()
 */
private $deleted;

/**
 * Softdeleted by
 * @var MyProject\UserBundle\Entity\User $deletedBy
 *
 * @Gedmo\Blameable(on="change", field="deleted")
 * @ORM\ManyToOne(targetEntity="MyProject\UserBundle\Entity\User")
 * @ORM\JoinColumn()
 */
private $deletedBy;
Run Code Online (Sandbox Code Playgroud)

Blameable(on="create")我对created/createdBy(使用)和updated/updatedBy(使用)有类似的配置Blameable(on="update")

更奇怪的是,如果我用下面的代码替换上面的代码,该字段deletedBy就会正确更新:

/**
 * Softdeleted by
 * @var MyProject\UserBundle\Entity\User $deletedBy
 *
 * @Gedmo\Blameable(on="update")
 * @ORM\ManyToOne(targetEntity="MyProject\UserBundle\Entity\User")
 * …
Run Code Online (Sandbox Code Playgroud)

symfony doctrine-orm

5
推荐指数
0
解决办法
1548
查看次数

在构造函数中初始化集合有什么用?

我正在使用Doctrine和Symfony,实体生成器在实体的构造函数中初始化集合.例如:

/**
 * @var MyProject\MyBundle\Entity\Foo
 * 
 * @ORM\ManyToMany(targetEntity="MyProject\MyBundle\Entity\Foo")
 */
private $foos;

public function __construct() {
    $this->foos = new \Doctrine\Common\Collections\ArrayCollection();
}
Run Code Online (Sandbox Code Playgroud)

我可以阅读Doctrine的最佳实践 ......这样做是一种很好的做法.

但问题是:兴趣什么?

如果我在构造函数中删除这一行,我没有看到任何变化.我猜它是懒加载的,但性能下降是否足以花时间编写app/console doctrine:generate:entities构造函数(如果构造函数已经存在,命令不会使用新的ArrayCollection来提供构造函数,所以我必须手动执行) .

如果这样做真的更好,我应该为所有关系做什么,还是只做nullable=false一个?

想象一下CarOneToMany中的实体Wheel(不可为空)和OneToMany Passenger(可为空).我应该只$wheels对两者进行初始化吗?为什么?

php symfony doctrine-orm

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

R包 - 如果未导出该函数,则无法测试@example函数

我正在开发一个带有RStudio的自定义R包,用roxygen2记录.

请考虑这个功能:

#' Get "test"
#'
#' @return String
#' @export
#'
#' @examples getTest()
getTest <- function() {
  return("test")
}
Run Code Online (Sandbox Code Playgroud)

如果我R CMD check使用上面编写的函数文档运行,一切都很好,check成功传递.

现在,如果我删除@export(因为我不希望从包外部看到此函数),我收到以下错误:

* checking examples ... ERROR
Running examples in 'MyPackageName-Ex.R' failed
The error most likely occurred in:

> ### Name: getTest
> ### Title: Get "test"
> ### Aliases: getTest
> 
> ### ** Examples
> 
> getTest()
Error: could not find function "getTest"
Execution halted
Run Code Online (Sandbox Code Playgroud)

看起来函数的测试@examples是从包外面运行的!?

如何测试非导出函数的示例?

r

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

QueryBuilder:循环中的参数

我正在尝试使用SF2/Doctrine Querybuilder为搜索字段构建请求.

在我的搜索字段中,我希望能够键入多个关键字,并获得与所有关键字匹配的结果.

所以,这是我的代码(在存储库中):

foreach ($keywordsArray as $keyword)
    {
        $qb->andWhere($qb->expr()->orX(
            $qb->expr()->like('p.name', ':keyword'),
            $qb->expr()->like('p.surname', ':keyword')                    
        ));
        $qb->setParameter('keyword', '%'.$keyword.'%');
        var_dump($keyword);
    }
Run Code Online (Sandbox Code Playgroud)

问题:参数'keyword'始终是$ keywordsArray的最后一个元素...

例如,当我在搜索字段中输入"John Smith"时,我有:

$ keywordsArray

array (size=2)
    0 => string 'John' (length=4)
    1 => string 'Smith' (length=5)
Run Code Online (Sandbox Code Playgroud)

循环中的var_dump($ keyword)告诉我$ keyword = John然后$ keyword = Smith.

但是,Symfony profiler告诉我执行的查询是:

 SELECT [...]
 FROM [...]
 WHERE (l0_.name LIKE '%Smith%' OR a1_.surname LIKE '%Smith%') 
 AND (l0_.name LIKE '%Smith%' OR a1_.surname LIKE '%Smith%')
Run Code Online (Sandbox Code Playgroud)

我期待的是:

 SELECT [...]
 FROM [...]
 WHERE (l0_.name LIKE '%John%' OR a1_.surname …
Run Code Online (Sandbox Code Playgroud)

php sql symfony doctrine-orm

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

R data.table - 将函数A应用于某些列,将函数B应用于其他列

我想聚合数据表的行,但是aggragation函数取决于列的名称.

例如,如果列名是:

  • variable1或者variable2,然后应用该mean()功能.
  • variable3,然后应用该max()功能.
  • variable4,然后应用该sd()功能.

我的数据表总是有一datetime列:我想按时间聚合行.但是,"数据"列的数量可以变化.

我知道如何使用相同的聚合函数(例如mean())对所有列执行此操作:

dt <- dt[, lapply(.SD, mean),
           by = .(datetime = floor_date(datetime, timeStep))]
Run Code Online (Sandbox Code Playgroud)

或者仅针对列的子集:

cols <- c("variable1", "variable2")    
dt <- dt[ ,(cols) := lapply(.SD, mean), 
            by = .(datetime = floor_date(datetime, timeStep)),
            .SDcols = cols]
Run Code Online (Sandbox Code Playgroud)

我想做的是:

colsToMean <- c("variable1", "variable2") 
colsToMax <- c("variable3")   
colsToSd <- c("variable4")   
dt <- dt[ ,{(colsToMean) := lapply(.SD???, mean),
             (colsToMax) := lapply(.SD???, max),
             (colsToSd) :=  lapply(.SD???, sd)}, …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

计算具有几乎相同时间戳的值之间的差异

请考虑以下输入数据:

  • 我有两个乐器(4154).
  • 他们都测量几个坦克(T1T2)的压力.
  • 他们几乎同时测量压力,但不完全是.

示例数据:

data  <- data.table(
   time = as.POSIXct(paste("2017-01-01", c("11:59", "12:05", "12:02", "12:03", "14:00", "14:01", "14:02", "14:06")), tz = "GMT"),
   instrumentId = c(41, 54, 41, 54, 41, 54, 41, 54),
   tank = c("T1", "T1", "T2", "T2", "T1", "T1", "T2", "T2"),
   pressure = c(25, 24, 35, 37.5, 22, 22.2, 38, 39.4))
Run Code Online (Sandbox Code Playgroud)

我想计算每个罐的仪器41和仪器54测量的压力之间的差异,假设在20分钟内测量的值属于同一样品.

理想情况下,差异的时间戳将是两个比较值的时间戳的平均值.

这是一个目前使用的脚本:

## Calculate difference of time between 2 consecutive lines
data <- data[, timeDiff := difftime(time, shift(time, type …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

设置ManyToOne关系的外部ID而不获取对象

我正在使用SF2和Doctrine2.

我有一个与实体Wheel具有ManyToOne关系的实体Car.

我想在服务中做这样的事情:

$car_id = 1;
$wheel = new Wheel();
$wheel->setCarId($car_id);
Run Code Online (Sandbox Code Playgroud)

换句话说,我希望能够链接Wheel并且Car只使用Car的id,而无需获得完整的对象(因为我不需要它:我只需要id而且我已经拥有它).

我怎样才能做到这一点?

symfony doctrine-orm

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

查找其日期间隔包含准时日期的值

我有一个为一个区间给出的理论值的data.table:

firstDate   lastDate    theoric
2017-01-01  2017-01-03  10
2017-01-05  2017-01-25  20
2017-02-01  2017-08-31  30
Run Code Online (Sandbox Code Playgroud)

另一方面,我有准时的测量值:

datetime      measured
2017-01-02       11
2017-01-08       22
2017-01-09       19
2017-01-26       25
2017-03-02       32
Run Code Online (Sandbox Code Playgroud)

对于每个测量值,我希望得到相应的理论值(其间隔包括测量日期的值).

注意:1.理论间隔不能重叠.2.如果测量值不在任何恐怖间隔内,则返回NA.

预期产量:

datetime    measured  theoric
2017-01-02  11        10
2017-01-08  22        20
2017-01-09  19        20
2017-01-26  25        NA
2017-03-02  32        30
Run Code Online (Sandbox Code Playgroud)

可重复的数据集:

theoricDt <- structure(list(firstDate = structure(c(1483228800, 1483574400, 1485907200), class = c("POSIXct", "POSIXt"), tzone = "GMT"),     lastDate = structure(c(1483401600, 1485302400, 1504137600 ), class = c("POSIXct", "POSIXt"), tzone = "GMT"), theoric = c(10, 20, 30)), …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

Bootstrap 弹出窗口:当光标移出窗口时隐藏

当用户将鼠标悬停在文本链接上时,我想显示一个包含多个按钮的弹出框

我遇到的问题是当光标从触发它的链接中时(例如,当用户移动以选择其中一个按钮时),我当前使用的默认 Bootstrap 弹出窗口被解除


这个jsFiddle是我尝试做的一个例子..原理是:当链接(#example)悬停时显示弹出.popover框,当弹出框()未悬停时隐藏弹出框。

但这不起作用,尽管我确定 BS popover 被封装在一个.popover类中(我使用 FF 开发调试工具进行了检查)。

有趣的是:它适用于另一个 div!如果我更换

$('.popover').mouseleave(function(){
    $('#example').popover('hide');
});
Run Code Online (Sandbox Code Playgroud)

这样

$('.square').mouseleave(function(){
    $('#example').popover('hide');
});
Run Code Online (Sandbox Code Playgroud)

当不再悬停在蓝色方块上时,弹出框确实被隐藏了。

为什么不工作.popover

javascript jquery twitter-bootstrap

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

Data.table:使用组移位数据的操作

考虑以下内容data.table:

DT <- data.table(year    = c(2011,2012,2013,2011,2012,2013,2011,2012,2013),
                 level   = c(137,137,137,136,136,136,135,135,135),
                 valueIn = c(13,30,56,11,25,60,8,27,51))
Run Code Online (Sandbox Code Playgroud)

我想要以下输出:

DT <- data.table(year     = c(2011,2012,2013,2011,2012,2013,2011,2012,2013),
                 level    = c(137,137,137,136,136,136,135,135,135),
                 valueIn  = c(13,30,56, 11,25,60, 8,27,51),
                 valueOut = c(12,27.5,58, 9.5,26,55.5, NA,NA,NA))
Run Code Online (Sandbox Code Playgroud)

换句话说,我要计算操作(valueIn[level] - valueIn[level-1]) / 2,根据year.例如,第一个值的计算如下:(13+11)/2=12.

目前,我使用for循环执行此操作,其中我data.table为每个循环创建子集level:

levelDtList <- list()
levels <- sort(DT$level, decreasing = FALSE)
for (this.level in levels) {
  levelDt   <- DT[level == this.level]
  if (this.level == min(levels)) {
    valueOut <- NA
  } else …
Run Code Online (Sandbox Code Playgroud)

r data.table

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