在IntelliJ中是否有任何键盘快捷键可以从一个括号导航(到匹配的括号)?
甚至"跳到下一个开/关括号(/ )从我的光标所在的位置"?
而且,如果没有办法"原生",那么有没有可以快速轻松地添加此功能的插件?
编辑:我发现的最佳解决方案是在liango的答案中添加为注释,即将光标放在第一个或最后一个括号上,然后按CTRL-W两次.不理想,但它做的工作!
我有一个Select2自动完成输入(通过SonataAdmin构建),但在我的生活中无法弄清楚如何以编程方式将其设置为已知的键/值对.
这里有一个JS小提琴,大致显示了我的内容.我想知道的是我可以将哪些功能附加到按钮上
我已经尝试了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事件中使用,并且值正确设置.
我希望这些额外的信息可以帮助别人!
我正试图与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) 首先,我不确定这是Sonata问题还是Symfony2问题,这是我第一次使用Sf2表单来编辑关系.
这是问题所在:
我有两个课程,让我们称之为旧的最爱:Car和Wheel.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) 我的传统工作流程必须与PHPStorm默认值略有不同.我经常同时处理多个文件,并希望在我完成它时只保存一个文件,而不保存我修改过的其他文件.
我已设法关闭自动保存功能.现在,当我编辑文件时,我在我编辑过的文件中得到了明星,并且它们保持这样状态,直到我点击"保存".到现在为止还挺好.
但是当按下CTRL-S进行保存时,期望它保存我正在查看的一个文件,这样我就可以回到带有星号的文件来对它们进行抛光,它也可以保存所有其他文件.
我希望有一些方法可以改变这种行为或设置一些东西,让我一次只保存一个文件!
我根据文档安装了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
在某些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)
我不确定下一步该尝试什么......来自社区的任何想法?
我使用此 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”)?
什么是在symfony2体系结构中记录来自Entity或Repository类的消息或错误的方法?在symfony1中,您可以使用单例来杀死小狗,通过这样做来从任何地方获取记录器:
sfContext::getInstance()->getLogger()
Run Code Online (Sandbox Code Playgroud)
Symfony2的容器模型更加严格,这很好,但是如何从非容器感知类中进行日志记录呢?对于repos,我想你可以将它们(全部)定义为服务,依赖于记录器,然后从那里开始.但是当你有一个Entity类的实例时呢?
从历史上看,我想把日志消息放在类方法中,但现在呢?我应该将记录器(作为参数)传递给想要编写日志消息的每个类方法吗?这看起来有点矫枉过正,但也许这是最好的做法?
或者我看到这个错误,Entities或Repos不应该写日志消息,而是将它们传回控制器来处理?
有没有办法将选择扩展到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移动到下一个选择的单词",我无法在任何地方找到任何设置来改变它.
symfony ×4
phpstorm ×3
sonata-admin ×3
javascript ×2
jquery ×2
php ×2
symfony-2.3 ×2
amazon-ami ×1
amazon-ec2 ×1
android ×1
cordova ×1
doctrine-orm ×1
editor ×1
forms ×1
logging ×1
ubuntu ×1
validation ×1