我在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) 我从来没有处理过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)可能重复:
使用数字键作为对象来装入数组
我做了一个从数组到对象的转换,我很困惑:
$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
导致语法错误.
为什么HtmlUnit比GUI浏览器慢得多?例如,HtmlUnit 在14秒内加载此页面http://oltexpress.airkiosk.com/cgi-bin/airkiosk/I7/181002i?O2=2(当CSS支持关闭时),而FF在5秒内加载(清除缓存后) ,CSS支持).我知道,现代浏览器在处理糟糕的JS代码时没有那么严格,而HtmlUnit是,但是这里的时间差异仍然是无法容忍的.
有关如何加快使用HtmlUnit的任何想法?有没有人玩过HtmlUnit缓存?
在我的代码中,我调用一个方法,其返回值的类型如下:
/**
* @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) 我试过了:
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运行应用程序时,此文件没有问题.
有什么建议?
我曾经使用'已经准备好的网络环境'(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但是没有用
有人能帮忙吗?我一直试图这样做几个小时:(
以下SQL查询在Propel(1.4)中的外观如何?
SELECT SUM(`price_equipment`) FROM `order_equipment` WHERE `order_id` = 57072;
Run Code Online (Sandbox Code Playgroud)
我使用谷歌进行了一些研究,但我找到的所有例子都考虑了计数GROUP BY子句.我只需要一个值.
以下是可能的吗?
我希望有一个用PL/pgSQL编写的过程,它接受类似"行集合"的参数,我的意思是我需要传递给类似字典的结构:
伪代码:
function_name({key1:val1,key2:val2, key3:val3 [, ...] })
Run Code Online (Sandbox Code Playgroud) php ×2
postgresql ×2
array-shape ×1
arrays ×1
caching ×1
casting ×1
css ×1
doctrine-orm ×1
fixed ×1
htmlunit ×1
many-to-many ×1
maven ×1
orm ×1
pdo ×1
phpstan ×1
plpgsql ×1
propel ×1
spring ×1
spring-boot ×1
symfony-1.4 ×1