小编Mar*_*ark的帖子

'by'关键字在Kotlin中做了什么?

'by'关键字在Kotlin中做了什么?在为android开发时,我有时会遇到类似这样的东西:

var someModel: someViewModel by notNullAndObservable { vm ->
  ...
}
Run Code Online (Sandbox Code Playgroud)

我不明白'by'关键字的重要性是什么.

kotlin

40
推荐指数
4
解决办法
8306
查看次数

使用RegEx替换无效字符

我有一个包含大量文件夹,子文件夹和所有文件的目录.我的项目的想法是递归整个目录,收集文件的所有名称并替换无效字符(对于SharePoint迁移无效).

但是,我对正则表达式完全不熟悉.我需要在文件名中摆脱的字符是: ~, #, %, &, *, { } , \, /, :, <>, ?, -, |"" 我想用一个空格来代替这些字符.我希望使用一种string.replace()方法来查看所有这些文件名并进行替换.

到目前为止,我得到的唯一代码是递归.我正在考虑递归扫描驱动器,获取这些文件的名称并将它们放入List<string>.

任何人都可以帮助我如何使用RegEx查找/替换无效字符与这些特定字符?

c# regex

25
推荐指数
2
解决办法
4万
查看次数

Doctrine 2 QueryBuilder添加多个select元素/参数?

我仍在努力使用Doctrine QueryBuilder,因为当我想在select表达式中添加另一个元素时,我认为它无法正常工作.

在这两种情况下,doctrine $ queryBuilder-> getQuery() - > getResults()返回一个数组,其中实体表示为字符串而不是对象:

情况1:

$queryBuilder = $this->em->createQueryBuilder();
$queryBuilder->select("e, 99 as number");
Run Code Online (Sandbox Code Playgroud)

它返回

array(4) {
  [0]=>
     array(2) {
        [0]=> string(30) "Profile_Entity" //notice this is a string but it should be  an object instance 
        ["number"]=> string(2) "99"
     }
  ...
...
Run Code Online (Sandbox Code Playgroud)

如果我会写

$queryBuilder = $this->em->createQueryBuilder();
$queryBuilder->select("e");
$queryBuilder->select("99 as number");
Run Code Online (Sandbox Code Playgroud)

它将返回与情况1相同的东西

下面是它通常应该是什么(这里只是select表达式中的一个元素)

array(4) {
  [0]=> object(stdClass)#935 (39) {
    ["__CLASS__"]=> string(30) "Profile_Entity"
    ["id"]=> int(46)
    ["headline"]=> string(7) "asdasd
    ...
  ...
...
Run Code Online (Sandbox Code Playgroud)

mysql doctrine-orm

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

将多个不同的实体分配给 Doctrine 中的一个数组行

当我在 Doctrine 中执行这样的事情时:

$qb = $doctrine
  ->getRepository('EntityA')
  ->createQueryBuilder('a')
  ->addSelect('b')
  ->join('EntityB', 'b', 'WITH', 'a.b = b')
  ->getQuery()
  ->getResult()
Run Code Online (Sandbox Code Playgroud)

我得到一个看起来像这样的数组:

array(0 => EntityA,
      1 => EntityB,
      2 => EntityA,
      4 => EntityB)
Run Code Online (Sandbox Code Playgroud)

事实上,我得到了 2 个结果行,但是一个大小为 4 的数组。这使得迭代它以在模板中显示几乎是不可能的。

我想要这样的结果:

array(0 => array(EntityA, EntityB),
      1 => array(EntityA, EntityB))
Run Code Online (Sandbox Code Playgroud)

当然,我可以在EntityA该引用上创建映射EntityB。但即使有改变的装载行为的可能性LAZYEAGER等等,也可能是希望具有动态创建这种关系的可能性。

例如:

在包含大量实体的概览中,EAGER需要加载以防止过多的查询。但是当我只想显示一个实体并且不需要额外的数据时,延迟加载更可取。

php symfony doctrine-orm

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

标签 统计

doctrine-orm ×2

c# ×1

kotlin ×1

mysql ×1

php ×1

regex ×1

symfony ×1