标签: symfony

如何使用Composer更新单个库?

我需要为我的SF2发行版安装一个软件包(DoctrineFixtures).

我跑的时候

php composer.phar update
Run Code Online (Sandbox Code Playgroud)

我明白了

  - Updating twig/twig (dev-master 39d94fa => v1.13.0)
    The package has modified files:
    M CHANGELOG
    M doc/filters/batch.test
    M doc/filters/index.rst
    M doc/filters/url_encode.rst
    M doc/functions/index.rst
    M doc/tags/index.rst
    M doc/tests/index.rst
    M lib/Twig/Autoloader.php
    M lib/Twig/Compiler.php
    M lib/Twig/CompilerInterface.php
-10 more files modified, choose "v" to view the full list
Run Code Online (Sandbox Code Playgroud)

看来最后一位开发人员在供应商内编辑了很多文件.

为了解决这个问题,我试过了

php composer.phar update <package_name>
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.如何从composer.json更新/安装一个库?

symfony composer-php

279
推荐指数
8
解决办法
25万
查看次数

在使用doctrine2删除级联时

我试图做一个简单的例子,以便学习如何从父表中删除一行,并使用Doctrine2自动删除子表中的匹配行.

这是我正在使用的两个实体:

Child.php:

<?php

namespace Acme\CascadeBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="child")
 */
class Child {

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @ORM\ManyToOne(targetEntity="Father", cascade={"remove"})
     *
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="father_id", referencedColumnName="id")
     * })
     *
     * @var father
     */
    private $father;
}
Run Code Online (Sandbox Code Playgroud)

Father.php

<?php
namespace Acme\CascadeBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="father")
 */
class Father
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
}
Run Code Online (Sandbox Code Playgroud)

这些表是在数据库上正确创建的,但是没有创建On Delete Cascade选项.我究竟做错了什么?

php cascading-deletes symfony doctrine-orm

218
推荐指数
2
解决办法
14万
查看次数

如何在Symfony 2获得当前路线?

如何在Symfony 2中获取当前路线?

例如,routing.yml:

somePage:
   pattern: /page/
   defaults: { _controller: "AcmeBundle:Test:index" }
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得这个somePage价值?

php routing symfony symfony-routing

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

如何在Twig模板中呈现DateTime对象

我的一个实体中的一个字段是"日期时间"变量.

如何将此字段转换为字符串以在浏览器中呈现?

这是一段代码:

{% for game in games %}
    ...
        <td> {{game.gameTeamIdOne.teamName}} </td>
        <td> {{game.gameTeamIdTwo.teamName}} </td>
        <td> {{game.gameDate}}</td>
    </tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

这是我的实体类中的变量:

/**
 * @var date $gameDate
 *
 * @ORM\Column(name="GAME_DATE", type="datetime", nullable=true)
 */
private $gameDate;
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误消息:

在渲染模板期间抛出异常("Catchable Fatal Error:类DateTime的对象无法转换为...\app\cache\dev\twig\9b\ad\58fd3bb1517632badf1fdc7fa4a8.php第33行中的字符串" )在第10行的"BeerBundle:Games:gameTable.html.twig"中.

php datetime symfony twig

209
推荐指数
5
解决办法
20万
查看次数

在Symfony 2.x中,一切都应该是一个捆绑吗?

我所知道的这样的问题这样,人们往往会讨论束的大致的Symfony 2的概念.

问题是,在特定的应用程序中,例如,类似于Twitter的应用程序,如果一切都真的在一个通用的包中,就像官方文档说的那样?

我之所以这么说是因为当我们开发应用程序时,一般来说,我们不希望将代码高度耦合到一些全栈胶水框架.

如果我开发一个基于Symfony 2的应用程序,并且在某些时候,我认为Symfony 2并不是保持开发进度的最佳选择,那对我来说是个问题吗?

所以一般的问题是:为什么一切都是一个好东西?

编辑#1

自从我提出这个问题以来差不多一年了,我写了一篇文章来分享我对这个主题的了解.

architecture bundle symfony

203
推荐指数
5
解决办法
3万
查看次数

Running Composer返回:"无法打开输入文件:composer.phar"

我是symfony2的新手并且正在阅读symblog.在尝试使用数据夹具的第三章中,我尝试了以下命令:

php composer.phar update

但是我得到了错误:

Could not open input file: composer.phar

所以我用Google搜索了一下并试了一下

php composer.phar install
Run Code Online (Sandbox Code Playgroud)

但仍然得到同样的错误.所以请指导如何处理这个作曲家在symfony2中使用wamp安装新的扩展或数据包等捆绑包.

php wamp symfony composer-php

198
推荐指数
10
解决办法
31万
查看次数

如何在symfony2中获取请求参数

我是symfony的新手.在其他语言如java和其他语言中我可以request.getParameter('parmeter name')用来获取值.

我们可以用symfony2做类似的事吗.
我见过一些例子,但没有一个对我有用.假设我有一个名称为username的表单字段.在表单操作中,我尝试使用以下内容:

$request = $this->getRequest();
$username= $request->request->get('username'); 
Run Code Online (Sandbox Code Playgroud)

我也试过了

$username = $request->getParameter('username');

$username=$request->request->getParameter('username');
Run Code Online (Sandbox Code Playgroud)

但是没有一个选项可行.但是后续工作正常:

foreach($request->request->all() as $req){
    print_r($req['username']);
}
Run Code Online (Sandbox Code Playgroud)

我在哪里使用getParameter()方法做错了.任何帮助将不胜感激.

php symfony

196
推荐指数
8
解决办法
33万
查看次数

如何从Symfony2 config.yml读取配置设置?

我已经为我的config.yml文件添加了一个设置:

app.config:
    contact_email: somebody@gmail.com
    ...
Run Code Online (Sandbox Code Playgroud)

对于我的生活,我无法弄清楚如何将其读入变量.我在我的一个控制器中尝试过这样的东西:

$recipient =
$this->container->getParameter('contact_email');
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误说:

必须定义参数"contact_email".

我已经清除了我的缓存,我也在Symfony2重新加载的站点文档中查看了所有内容,但我无法找到如何执行此操作.

可能现在太累了,无法弄明白这一点.有人能帮忙吗?

configuration symfony

191
推荐指数
5
解决办法
16万
查看次数

在Doctrine QueryBuilder中计算行数

我正在使用Doctrine的QueryBuilder来构建查询,我想从查询中获得结果的总数.

$repository = $em->getRepository('FooBundle:Foo');

$qb = $repository->createQueryBuilder('n')
        ->where('n.bar = :bar')
        ->setParameter('bar', $bar);

$query = $qb->getQuery();

//this doesn't work
$totalrows = $query->getResult()->count();
Run Code Online (Sandbox Code Playgroud)

我只想对此查询运行计数以获取总行数,但不返回实际结果.(在此计数查询之后,我将使用maxResults进一步修改查询以进行分页.)

symfony doctrine-orm

190
推荐指数
8
解决办法
21万
查看次数

如何在Symfony2 Twig模板中获取配置参数

我有一个Symfony2 Twig模板.我想在此twig模板中输出config参数的值(版本号).因此我定义了config参数,如下所示:

parameters:
    app.version: 0.1.0
Run Code Online (Sandbox Code Playgroud)

我可以在控制器中使用此配置参数,但我不知道如何在我的Twig模板中获取它.

configuration symfony twig

162
推荐指数
6
解决办法
15万
查看次数