小编bie*_*era的帖子

Doctrine ManyToMany:删除一个对象

我在Doctrine中遇到单向ManyToMany关系的问题.案例非常简单:产品有很多标签.标签可以附加到Product,也可以附加到模型中的任何"可标记"实体.这是我的代码片段:

/**
 * @Entity 
 * @Table(name="products")
 **/
class Product {

    /** some other fields here */

    /**
     * @ManyToMany(targetEntity="Tag")
     * @JoinTable(name="products_tags",
     *      joinColumns={@JoinColumn(name="product_id", referencedColumnName="id")},
     *      inverseJoinColumns={@JoinColumn(name="tag_id", referencedColumnName="id")}     
     *      )
     */
    protected $tags;

}
Run Code Online (Sandbox Code Playgroud)

由于省略了Tag类的单向关系代码.

对于这样定义的关联,Doctrine生成了以下SQL代码(跳过产品表和标签表的SQL):

CREATE TABLE `products_tags` (
  `product_id` int(11) NOT NULL,
  `tag_id` int(11) NOT NULL,
  PRIMARY KEY (`product_id`,`tag_id`),
  KEY `IDX_E3AB5A2C4584665A` (`product_id`),
  KEY `IDX_E3AB5A2CBAD26311` (`tag_id`),
  CONSTRAINT `FK_E3AB5A2CBAD26311` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`),
  CONSTRAINT `FK_E3AB5A2C4584665A` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
Run Code Online (Sandbox Code Playgroud)

我想删除附有一些标签的产品.

/* …
Run Code Online (Sandbox Code Playgroud)

many-to-many doctrine-orm

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

固定页面标题

我从来没有处理过CSS,但现在我必须这样做.我正在开发一些HTML代码 - 一个网站的草图,并有CSS的问题.我想让我的标题处于固定位置,我的意思是它总是应该位于网站的顶部,即使有太多的内容,网站也必须滚动才能看到所有内容.我尝试了一些,但它无法正常工作.

HTML:

    body {
        margin: 0px 0px 0px 0px;
    }

    header {
        border: 2px solid red;
        position: fixed;
        width: 100%;
    }

    #top-menu-bar {
        border: 1px dashed red;
        padding: 15px;
        text-align: right;
    }

    #main-menu-bar {
        border: 1px dashed red;
        padding: 15px;
    }

    #logo-bar {
        border: 1px dashed red;
        padding: 35px;
    }

    #content {
        border: 2px solid black;
    }

    footer {
        border: 2px solid blue;
        padding: 15px;
    }
Run Code Online (Sandbox Code Playgroud)
 <html>
      <head>
        <link rel="stylesheet" type="text/css" href="./css/main.css"></link>
      </head>
      <body>
        <header>
          <div id="top-menu-bar">
        	Login …
Run Code Online (Sandbox Code Playgroud)

css fixed

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

PHP将数组转换为对象

可能重复:
使用数字键作为对象来装入数组

我做了一个从数组到对象的转换,我很困惑:

$arr = range(1,3);
$obj = (object) $arr;
var_dump($obj)

object(stdClass)#2 (5) {
  [0]=>
    int(1)
  [1]=>
    int(2)
  [2]=>
    int(3)
}
Run Code Online (Sandbox Code Playgroud)

问题是:在这种情况下如何访问对象属性?$obj->0导致语法错误.

php casting

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

HtmlUnit比GUI浏览器慢?

为什么HtmlUnit比GUI浏览器慢得多?例如,HtmlUnit 在14秒内加载此页面http://oltexpress.airkiosk.com/cgi-bin/airkiosk/I7/181002i?O2=2(当CSS支持关闭时),而FF在5秒内加载(清除缓存后) ,CSS支持).我知道,现代浏览器在处理糟糕的JS代码时没有那么严格,而HtmlUnit是,但是这里的时间差异仍然是无法容忍的.

有关如何加快使用HtmlUnit的任何想法?有没有人玩过HtmlUnit缓存?

caching htmlunit

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

PHPStan 转换为更具体的数组形状

在我的代码中,我调用一个方法,其返回值的类型如下:

/**
 * @return array<int, array<string,mixed>>
 */
public function fetchAllAssociative(): array;
Run Code Online (Sandbox Code Playgroud)

子类型array<string, mixed>以通用方式描述数据库记录。我确切地知道这个数据库记录是什么样的,所以我想更具体地记录该方法:

/**
 * @return array<int, array{id: int, firstName: string, lastName: string}>
 */
public function getAllUsers(): array
{
  return $this->userRepository->fetchAllAssociative();
}
Run Code Online (Sandbox Code Playgroud)

然而,PHPStan 抱怨说我应该完全按照以下方式键入我的方法fetchAllAssociative

Method UserRepository::getAllUsers() should return array<int, array{id: int, firstName: string, lastName: string}> but returns array<int, array<string, mixed>>.

有办法投吗?我的解决方法是引入一个新变量并使用@var标签,但我不太喜欢它(其他静态代码分析工具也不喜欢它)

/**
 * @return array<int, array{id: int, firstName: string, lastName: string}>
 */
public function getAllUsers(): array
{
  /**
   * @var array<int, array{id: int, firstName: …
Run Code Online (Sandbox Code Playgroud)

phpstan array-shape

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

Spring Boot:将系统属性传递给maven

我试过了:

mvn -Dspring.profiles.active=dev spring-boot:run

但它不会影响我的默认配置.我用Google搜索了一下,发现:

mvn -DargLine="-Dspring.profiles.active=dev" spring-boot:run

但如果也失败了.

当我跑:

mvn package

然后:

java -Dspring.profiles.active=test -jar target/app-1.0.0.jar

它按预期工作(配置文件已更改)但无法从资源目录(FileNotFound异常)中找到以这种方式加载的文件:

new File(getClass().getClassLoader().getResource("data.yml").getFile())

使用maven运行应用程序时,此文件没有问题.

有什么建议?

spring maven spring-boot

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

如何与PHP结合PostgreSql?

我曾经使用'已经准备好的网络环境'(apache + php +一些rdbms),例如lampp.现在我得到了机器,我的内存有限,无法安装类似lammp(它太大了),但我需要一些网络环境.我已经安装了apache(来自发行版),PHP与OS(DEBIAN)一起安装.我安装了我最喜欢的rdbms,它是PostgreSQL,并且存在一个问题:PHP不想使用postgresql工作.当我显示phpinfo()时,我可以看到在PDO表中启用了notihng.

现在,问题是:我真的必须重新编译我的PHP吗?PHP文档(http://www.php.net/manual/en/pgsql.installation.php)也说:"......如果共享对象模块可用,可以使用php.ini中的扩展指令加载PostgreSQL模块或dl()函数".

我试过:extension = pgsql.so但是没有用

有人能帮忙吗?我一直试图这样做几个小时:(

php postgresql pdo

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

Propel和SQL聚合函数

以下SQL查询在Propel(1.4)中的外观如何?

SELECT SUM(`price_equipment`) FROM `order_equipment` WHERE `order_id` = 57072;
Run Code Online (Sandbox Code Playgroud)

我使用谷歌进行了一些研究,但我找到的所有例子都考虑了计数GROUP BY子句.我只需要一个值.

orm propel symfony-1.4

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

PL/pgSQL行数组

以下是可能的吗?
我希望有一个用PL/pgSQL编写的过程,它接受类似"行集合"的参数,我的意思是我需要传递给类似字典的结构:

伪代码:

function_name({key1:val1,key2:val2, key3:val3 [, ...] })
Run Code Online (Sandbox Code Playgroud)

arrays postgresql plpgsql

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