小编cap*_*ica的帖子

IntelliJ IDEA查找匹配的括号/括号

在IntelliJ中是否有任何键盘快捷键可以从一个括号导航(到匹配的括号)

甚至"跳到下一个开/关括号(/ )从我的光标所在的位置"?

而且,如果没有办法"原生",那么有没有可以快速轻松地添加此功能的插件?

编辑:我发现的最佳解决方案是在liango的答案中添加为注释,即将光标放在第一个或最后一个括号上,然后按CTRL-W两次.不理想,但它做的工作!

keyboard-shortcuts intellij-idea phpstorm

29
推荐指数
4
解决办法
7831
查看次数

以编程方式设置Select2 ajax的值

我有一个Select2自动完成输入(通过SonataAdmin构建),但在我的生活中无法弄清楚如何以编程方式将其设置为已知的键/值对.

这里有一个JS小提琴,大致显示了我的内容.我想知道的是我可以将哪些功能附加到按钮上

  • Select2字段向用户显示文本"NEW VALUE",和
  • 将表单发送到服务器时,Select2字段将提交值"1"

我已经尝试了jQuery和Select2 data以及val方法的各种组合,在页面上针对各种输入调用,但似乎没有任何工作......当然有一些方法可以做到这一点?

- 编辑 -

下面接受的答案非常有用,有助于阐明初始化选择的正确方法,并解释initSelection的用途.

话虽如此,我最大的错误似乎是我试图触发变化的方式.

我用的是:

$(element).select2('data', newObject).trigger('change');
Run Code Online (Sandbox Code Playgroud)

但是这会导致addselect2的change事件中出现一个空对象.

相反,如果您使用:

$(element).select2('data', newObject, true);
Run Code Online (Sandbox Code Playgroud)

那么代码可以正常工作,newObject可以在select2的change事件中使用,并且值正确设置.

我希望这些额外的信息可以帮助别人!

javascript jquery jquery-select2 sonata-admin

29
推荐指数
5
解决办法
7万
查看次数

Symfony2形成事件和模型变换器

我正试图与Symfony2的表格制作者,活动和变形金刚搏斗...希望有人在这里更有经验,可以提供帮助!

我有一个表单字段(选择下拉列表),其中包含一些映射到实体的值(一个候选名单).其中一个选项是"其他".假设现在没有AJAX,当用户提交表格我想要检测他们是否选择了"其他"(或者不在候选名单中的任何其他选项).如果他们选择了其中一个选项,则应显示完整的选项列表,否则只显示候选名单.应该很容易吧?;)

所以,我有我的表格类型,它显示基本的候选名单就好了.代码看起来像这样:

namespace Company\ProjectBundle\Form\Type;

use ...

class FancyFormType extends AbstractType {
    private $fooRepo;

    public function __construct(EntityManager $em, FooRepository $fooRepo)
    {
        $this->fooRepo = $fooRepo;
    }

    public function buildForm(FormBuilderInterface $builder, array $options) {
        /** @var Bar $bar */
        $bar = $builder->getData();
        $fooTransformer = new FooToStringTransformer($options['em']);

        $builder
            ->add($builder
                ->create('linkedFoo', 'choice', array(
                    'choices' => $this->fooRepo->getListAsArray(
                        $bar->getLinkedfoo()->getId()
                    ),
                ))
                ->addModelTransformer($fooTransformer)
            )
        ;

        // ...

    }

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

现在,我想检查提交的值,因此我使用Form Event Listener,如下所示.

public function buildForm(FormBuilderInterface $builder, array $options) {
    // ... This code comes just …
Run Code Online (Sandbox Code Playgroud)

php forms symfony doctrine-orm

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

使用sonata_type_admin嵌入式管理员停止SonataAdmin/Symfony2创建空对象

首先,我不确定这是Sonata问题还是Symfony2问题,这是我第一次使用Sf2表单来编辑关系.

这是问题所在:

我有两个课程,让我们称之为旧的最爱:CarWheel.Car与Wheel有一个可选的一对一关系(举个例子,就这么说吧......).我已经设置了SonataAdmin,CarAdmin其中包含一个嵌入WheelAdmin使用的类,sonata_type_admin并尝试创建一个Car而不输入任何Wheel数据.

但是,在提交时(在$ form-> bind()/ $ form-> submit()的某个地方,我可以跟踪)Symfony和/或Sonata实例化一个Wheel并试图保持它(其所有值为null) .由于Wheel具有一些非null约束,因此抛出DBALException,抱怨您无法使用null值来插入Wheel.

这很顽皮,我想阻止它发生.如果我没有输入Wheel的任何细节,我不希望幻影轮对我的代码和数据库造成威胁.我期望的是,如果我没有输入任何数据,就没有任何内容可以插入/保留,所以它不会被单独留下.但这不是正在发生的事情...... 任何想法如何将其驯服成合情合理的东西?


这是长版本,包含代码块和所有内容:

ORM定义首先:

# MyNS\MyBundle\Resources\Config\Doctrine\Car.orm.yml
MyNS\MyBundle\Entity\Car:
  type: entity
  repositoryClass: MyNS\MyBundle\Entity\Repositories\CarRepository
  table: test_cars
  id:
    id:
      type:                     integer
      generator:                { strategy: AUTO }
  fields:
    color:
      type:                     string
      length:                   50
    owner:
      type:                     string
      length:                   50
      nullable:                 true
  oneToOne:
    leftFrontWheel:
      targetEntity:             Wheel
      cascade:                  [ persist ]
      joinColumn:
        name:                   leftFrontWheelId
        referencedColumnName:   id


# MyNS\MyBundle\Resources\Config\Doctrine\Wheel.orm.yml
MyNS\MyBundle\Entity\Wheel:
  type: entity
  repositoryClass: MyNS\MyBundle\Entity\Repositories\WheelRepository
  table: test_wheels …
Run Code Online (Sandbox Code Playgroud)

symfony symfony-sonata sonata-admin symfony-2.3

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

有没有办法在PhpStorm中只保存一个文件?

我的传统工作流程必须与PHPStorm默认值略有不同.我经常同时处理多个文件,并希望在我完成它时只保存一个文件,而不保存我修改过的其他文件.

我已设法关闭自动保存功能.现在,当我编辑文件时,我在我编辑过的文件中得到了明星,并且它们保持这样状态,直到我点击"保存".到现在为止还挺好.

但是当按下CTRL-S进行保存时,期望它保存我正在查看的一个文件,这样我就可以回到带有星号的文件来对它们进行抛光,它也可以保存所有其他文件.

我希望有一些方法可以改变这种行为或设置一些东西,让我一次只保存一个文件!

phpstorm

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

向SonataUserBundle添加自定义验证规则

我根据文档安装了SonataUserBundle,一切正常.除了我不能添加自定义验证规则.

我的理解是新规则应该添加到新的验证组,然后更新config.yml以告诉SonataUserBundle(或FosUserBundle)将新规则添加到验证序列.

我已经以各种方式尝试了这一点,但新规则似乎根本没有被接受......

这是我正在使用的配置......

(为了这个例子,我只是尝试将NotNull约束添加到一个新的foo字段.实际上我希望看​​到这么多工作,然后添加更多的验证规则.)

我已经添加了foo字段,Application\Sonata\UserBundle\Resources\config\doctrine\User.orm.xml并且一切正常,将foo字段添加到User.php类中.

# in Application\Sonata\UserBundle\Resources\config\doctrine\User.orm.xml
...
<field name="foo" type="string" length="100" nullable="true" />
...
Run Code Online (Sandbox Code Playgroud)

在User.php中,我们有getter和setter的属性:

// In Application\Sonata\UserBundle\Entity\User.php
// ...
/**
 * @var string
 */
private $foo;

/**
 * Set foo
 *
 * @param string $foo
 * @return User
 */
public function setFoo($foo)
{
    $this->foo = $foo;

    return $this;
}

/**
 * Get foo
 *
 * @return string 
 */
public function getFoo()
{
    return $this->foo;
}
// ...
Run Code Online (Sandbox Code Playgroud)

然后我将新的验证规则添加到我项目的现有validation.yml文件中:

Application\Sonata\UserBundle\Entity\User:
    properties:
        foo:
            - …
Run Code Online (Sandbox Code Playgroud)

validation symfony fosuserbundle sonata-admin sonata-user-bundle

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

某些Android设备/ Chrome上的HTML5数字输入中没有小数位

在某些Android设备上,创建HTML5数字输入字段不会显示任何小数位.

<input type="number" step="0.001" min="0" name="foo" />
Run Code Online (Sandbox Code Playgroud)

这很麻烦,因为我正在尝试编写一个HTML5 + Javascript应用程序.它目前适用于IOS以及一些(大多数?)Android设备.只是某些Android版本/品牌在弹出的数字键盘上没有显示小数位.

例如,在Galaxy S3上,应用程序本身运行正常,但如果在Chrome中打开相同的代码,则不会得到小数点.我正在使用这个组合来测试并尝试解决这个bug.

这是问题 - 是否有任何方法可以使用Javascript来检测键盘是否会显示小数点?在那些情况下,我可以以编程方式将number类型更改为text,但我只想对必要的设备执行此操作.

(或者,有没有办法强制小数点出现在键盘上?到目前为止我的研究表明没有,这就是为什么我要问的是解决方法.)

我尝试过使用各种步骤(any,0.1等),设置模式,将起始值设置为十进制(value="0.1")都无济于事.

我已经尝试检测到浏览器可以处理数字字段,但这会报告为"真实"......设备可以处理数字字段,它们只是处理错误:

var i = document.createElement("input");
i.setAttribute("type", "number");
i.setAttribute("step", "0.001");
alert(i.type + ' and ' + i.step); // gives "number and 0.001", so the device has stored the values and claims to support them
Run Code Online (Sandbox Code Playgroud)

我不确定下一步该尝试什么......来自社区的任何想法?

javascript jquery android cordova

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

登录新 Ubuntu 22.04 LTS 实例的默认用户名是什么?(从 AMI 创建的 AWS EC2)

我使用此 AMI 启动了一个新实例:
099720109477/ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-20220420

但是,每当我尝试使用 putty 连接时,系统都会提示我输入用户名。我输入“ubuntu”,但随后断开连接,并显示消息“服务器拒绝我们的密钥”(请参阅​​随附的屏幕截图)。

当我使用 20.04 ami 做同样的事情时,它可以工作。

从这里开始工作 AMI:
099720109477/ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20220419

工作版本完全相同。相同的 EC2 设置(网络设置、安全组、密钥对等)和相同的 putty 设置(只是不同的 IP 地址)。

我已尝试了所有我能想到的方法,但找不到连接到新的 22.04 实例的方法。

我是否只是输入了错误的用户名(即不是“ubuntu”)?

ubuntu amazon-ec2 amazon-ami

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

从Symfony2中的实体和存储库记录的正确方法

什么是在symfony2体系结构中记录来自Entity或Repository类的消息或错误的方法?在symfony1中,您可以使用单例来杀死小狗,通过这样做来从任何地方获取记录器:

sfContext::getInstance()->getLogger()
Run Code Online (Sandbox Code Playgroud)

Symfony2的容器模型更加严格,这很好,但是如何从非容器感知类中进行日志记录呢?对于repos,我想你可以将它们(全部)定义为服务,依赖于记录器,然后从那里开始.但是当你有一个Entity类的实例时呢?

从历史上看,我想把日志消息放在类方法中,但现在呢?我应该将记录器(作为参数)传递给想要编写日志消息的每个类方法吗?这看起来有点矫枉过正,但也许这是最好的做法?

或者我看到这个错误,Entities或Repos不应该写日志消息,而是将它们传回控制器来处理?

php logging symfony symfony-2.3

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

如何选择intellij-idea/phpstorm中的单词结尾

有没有办法将选择扩展到intellij idea/phpstorm中当前单词的结尾?

例如(前面的ASCII艺术......)

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
      <----------------------->|
Run Code Online (Sandbox Code Playgroud)

我从"ipsum"的开头到"consectetuer"的现有选择.如何选择该单词的结尾.按下CTRL+SHIFT+Right将我带到adipiscing的开头.当间距很小时,这不是什么大问题,但有时看起来更像是这样:

Lorem ipsum dolor sit amet, consectetuer          adipiscing elit.
      <----------------------->|
Run Code Online (Sandbox Code Playgroud)

我有两个选择......要么Right是当前单词的结尾,要么CTRL+SHIFT+Right是adipiscing的开头,然后是Left回到我想要的位置.

我使用的大多数其他文本编辑器/ IDE选择到当前单词的末尾.希望在PHP Storm中有一个我无法找到的设置!

在设置中只有现有CTRL+SHIFT+Right映射到"将Caret移动到下一个选择的单词",我无法在任何地方找到任何设置来改变它.

editor intellij-idea phpstorm

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