FormGroup将每个子FormControl的值聚合到一个对象中,每个控件名称作为键.
Run Code Online (Sandbox Code Playgroud)const form = new FormGroup({ first: new FormControl('Nancy', Validators.minLength(2)), last: new FormControl('Drew'), });
FormArray将每个子FormControl的值聚合到一个数组中.
Run Code Online (Sandbox Code Playgroud)const arr = new FormArray([ new FormControl('Nancy', Validators.minLength(2)), new FormControl('Drew'), ]);
应该何时使用另一个?
我正在尝试重新部署我一直在研究的Symfony 2.1x项目,但app_dev.php由于找不到它而失败app/bootstrap.php.cache.该文件在项目的git存储库中省略,因为我使用了Symfony2的推荐.gitignore文件:
# .gitignore
/app/bootstrap*
Run Code Online (Sandbox Code Playgroud)
我认为这app/bootstrap.php.cache是在$ php composer.phar install过程中产生的吗?如果是这种情况,那么我将包括你composer.json:
// composer.json
{
"name": "symfony/framework-standard-edition",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.1.*",
"doctrine/orm": "2.2.*",
"doctrine/doctrine-bundle": "dev-master",
"twig/extensions": "dev-master",
"symfony/assetic-bundle": "dev-master",
"symfony/swiftmailer-bundle": "dev-master",
"symfony/monolog-bundle": "dev-master",
"sensio/distribution-bundle": "dev-master",
"sensio/framework-extra-bundle": "dev-master",
"sensio/generator-bundle": "dev-master",
"jms/security-extra-bundle": "1.1.*",
"jms/di-extra-bundle": "1.0.*",
"ddeboer/guzzle-bundle": "dev-master",
"mopa/bootstrap-bundle": "dev-master",
"twitter/bootstrap": "master",
"knplabs/knp-paginator-bundle": "dev-master",
"knplabs/knp-menu-bundle": "dev-master",
"craue/formflow-bundle": "dev-master" …Run Code Online (Sandbox Code Playgroud) 也许我错过了一些东西,但似乎没有办法在Symfony2中的路由中定义查询字符串参数,以便它们可以传递到控制器中.
例如,不是生成类似/blog/my-blog-post(来自Symfony2的路由文档)的URI 并将其传递给以下路由:
# app/config/routing.yml
blog_show:
pattern: /blog/{slug}
defaults: { _controller: AcmeBlogBundle:Blog:show }
Run Code Online (Sandbox Code Playgroud)
我宁愿生成像这样的URI /blog?slug=my-blog-post.问题是我找不到任何地方slug在路由配置文件中定义参数(如上面的{slug}对应部分).
也许这是故意的,但是在查询字符串中使用GET参数的最佳做法是什么?
文档确实在使用查询字符串生成URL时提到它们,那么如何将它们传递给控制器?
我可以在哪里找到它们是Symfony2和HTTP Fundamentals:
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
// retrieve GET variables
$request->query->get('foo');
Run Code Online (Sandbox Code Playgroud)
这是在控制器内使用它们的最佳实践吗?
PhpStorm有来自各种编译时库方法存根的列表,在这里,它会用在开发自动完成.
我目前有一个PHP AMQP PECL扩展的存根列表,我想添加到我的PhpStorm构建中以获得该库的自动完成.
有没有办法做到这一点?
在Symfony文档的模板命名和位置部分中,它说:
Symfony2使用bundle:controller:模板的模板字符串语法.这允许使用几种不同类型的模板,每种模板都位于特定位置:
- AcmeBlogBundle:Blog:index.html.twig:此语法用于指定特定页面的模板.字符串的三个部分,每个部分用冒号(:)分隔,表示以下内容:
- AcmeBlogBundle :(包)模板存在于AcmeBlogBundle内(例如src/Acme/BlogBundle); Blog :(控制器)表示该模板位于Resources/views的Blog子目录中;
- index.html.twig :(模板)文件的实际名称是index.html.twig.
我想解析一个twig模板,并在我的数据夹具引导过程中将html持久保存到一个doctrine实体的属性中,如下所示:
// let's say it finds ./Data/Product/camera_description.html.twig
$productDescriptionTemplate = __DIR__.sprintf(
'/Data/Product/%s_description.html.twig',
$product->getName()
);
$product->setDescription(
$this->container->get('templating')->render(
$productDescriptionTemplate,
array()
)
);
$em->flush();
Run Code Online (Sandbox Code Playgroud)
这会引发以下异常:
# would actually be an absolute path
[InvalidArgumentException]
Template name "./Data/Product/camera_description.html.twig
" is not valid (format is "bundle:section:template.format.engine").
Run Code Online (Sandbox Code Playgroud)
是的我可以移动产品描述模板,path/to/bundle/Resources/views/但我更感兴趣的是是否有可能绕过这个约定:有没有办法给树枝模板引擎提供一个树枝模板的相对或绝对路径并让它呈现它没有使用惯例bundle:controller:template?
我知道如何从索引包含中排除元文件和日志文件但在我的应用程序中composer.json我将Guzzle和Goutte列为依赖项.Goutte包含一个goutte.phar,后者又包含Guzzle的源代码.因此,当我使用自动完成时,我得到了这个:

无论如何从PHPStorm索引中排除*.phar文件(或任何特定的PHP文件)?
我在doctrine文档中找到了以下示例,它们已将映射添加到特征:
/**
* Trait class
*/
trait ExampleTrait
{
/** @Id @Column(type="string") */
private $id;
/**
* @Column(name="trait_foo", type="integer", length=100, nullable=true, unique=true)
*/
protected $foo;
/**
* @OneToOne(targetEntity="Bar", cascade={"persist", "merge"})
* @JoinColumn(name="example_trait_bar_id", referencedColumnName="id")
*/
protected $bar;
}
Run Code Online (Sandbox Code Playgroud)
我试图映射一个特征,而不必复制继承它的类中的映射.我没有诚实地尝试过这个,因为我当前的项目使用yaml进行映射,但看起来普通的php类在使用特性时也会继承映射.
有没有办法继承这个特征的映射而不使用关联,而是使用yaml或xml?我尝试将特征设置为映射的超类,但它不起作用,但我基本上寻找相同类型的想法.
谢谢.
我想显示以小时,分钟和秒为单位测量的时间长度,其中一些时间长度大于24小时.目前我正在尝试这个:
$timeLength = new DateTime();
$timeLength->setTime(25, 30);
echo $timeLength->format('H:m:i'); // 01:30:00
Run Code Online (Sandbox Code Playgroud)
我希望它能显示出来25:30:00.
我正在寻找一个面向对象的解决方案.
谢谢 :)
我最近发布了一个新组件,它似乎每秒触发多次更改检测:
// some debugging code
ngDoCheck() {
console.log('DO_CHECK', new Date().toLocaleTimeString());
}
Run Code Online (Sandbox Code Playgroud)
结果:
我还没有弄清楚是什么触发了这个。
我是否正确阅读了此输出?每秒多次触发变更检测?
有什么好的方法可以确定是什么触发了 Angular 2 应用程序中的变更检测?
php ×6
phpstorm ×3
symfony ×3
angular ×2
datetime ×1
doctrine ×1
doctrine-orm ×1
parameters ×1
query-string ×1
routing ×1
ruby ×1
symfony-2.1 ×1
twig ×1
url ×1
webstorm ×1