我有一个多维数组,其中存在一些对象而其他对象则不存在.我一直在接受
对象"stdClass"的方法"代码"在...中不存在?
我在模板中使用的代码是:
{% for item in items %}
<p>{% if item.product.code %}{{ item.product.code }}{% endif %}</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
有些产品没有这个代码,不幸的是这个数据结构是通过feed提供的,所以我无法改变它.
当我查看Twig文档时,我解释说如果没有对象或方法,它只会返回null?
有谁知道如何访问服务中的会话变量?
我有一个服务设置,我将容器传递给.我可以使用以下方法访问Doctrine服务之类的内容:
// Get the doctrine service
$doctrine_service = $this->container->get('doctrine');
// Get the entity manager
$em = $doctrine_service->getEntityManager();
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何访问会话.
在控制器中,可以使用以下方式访问会话:
$session = $this->getRequest()->getSession();
$session->set('foo', 'bar');
$foo = $session->get('foo');
Run Code Online (Sandbox Code Playgroud)
会话是服务的一部分,如果是,那么所调用的服务是什么.
任何帮助将非常感激.
我有一些当前在config.yml文件中的设置.
展望未来我希望能够开发一个管理员可以更新这些设置的界面,因此我希望能够通过数据库管理这些设置.
我如何能够将这些设置从数据库加载到Symfony2中,以及何时何地加载它们?
干杯
亚当
在旧版本的Symfony中,您曾经能够通过扩展具有扩展子类的模型类来在数据对象中构建新对象.
例如,我有一个包含结果表的问卷模型.结果表有一个Result.php模型类,用于通过Doctrine设置和获取结果.然后,我使用ResultPeer.php模型子类向Result对象添加一个新函数,该函数获取结果,并根据计算得分和相应颜色的一组固定阈值.
在使用Doctrine2的新Symfony2版本中,我正在努力找出实现这一目标的最佳方法.在创建实体时,我只能在文档中找到基于数据结构关系添加对象的能力.
我查看了实体存储库,但这似乎并没有扩展或添加原始对象的功能.它似乎基于比标准查询函数更复杂的查询来恢复数据对象.
我还查看了服务,我可以使用它来收集对象,然后使用该对象创建一个包含此对象和新创建的数据的新数组,但这似乎不正确或遵循Symfony的全部理念.
有谁知道如何将函数添加到现有数据对象.我发现它在旧版本的Symfony中非常有用,但似乎无法在新版本的Symfony2中找到替代品.
我试图使用Imagick与Symfony2,但每次我尝试使用它,它会给我以下错误:
Fatal error: Class 'Acme\TestBundle\Services\Imagick' not found...
Run Code Online (Sandbox Code Playgroud)
我在设置的服务中使用Imagick来管理我的图像.我需要做什么才能使用这个课程?
我可以确认Imagick扩展正在服务器上运行,并且正在被其他站点使用.
在此先感谢您的帮助.
我一直在尝试使用一系列正则表达式和PHP函数preg_replace在PHP中编写.
我的主要目的是整理内容,例如确保句子的开头是大写字母; 逗号后面有空格; 等等
我试图实现整理的一些例子:
// Remove any spaces around slashes
$content_replacements_from[] = "/\s*\/\s*/";
$content_replacements_to[] = "/";
// Remove any new lines or tabs
$content_replacements_from[] = "/[\r\n\t]/";
$content_replacements_to[] = " ";
// Remove any extra spaces
$content_replacements_from[] = "/\s{2,}/";
$content_replacements_to[] = " ";
// Tidy up joined full stops
$content_replacements_from[] = "/([a-zA-Z]{1})\s*[\.]{1}\s*([^(jpeg|jpg|png|pdf|gif|doc|xls|docx|xlsx|ppt|pptx|html|php|htm)]{1})/";
$content_replacements_to[] = "$1. $2";
// Tidy up joined commas
$content_replacements_from[] = "/([a-zA-Z0-9]{1})\s*[\,]{1}\s*([a-zA-Z0-9]{1})/";
$content_replacements_to[] = "$1, $2";
// Tidy up joined exclamation marks
$content_replacements_from[] = "/([a-zA-Z0-9]{1})\s*[\!]{1}\s*([a-zA-Z0-9]{1})/";
$content_replacements_to[] = "$1! …Run Code Online (Sandbox Code Playgroud) 我已经阅读了Symfony文档,我仍然不确定如何包含一个类.我想将一个Google Analytics PHP类包含在Symfony中,但不确定如下:
干杯
亚当
我目前正在使用Symfony2和Doctrine2,并尝试使用查询构建器将两个表连接在一起.
我遇到的问题是我所有带注释的实体都没有设置表关系.我会在某个时候解决这个问题,但同时我需要尝试解决这个问题.
基本上我有两个表:产品表和product_description表.产品表存储基本信息,然后我有一个product_description表,用于存储描述信息.由于语言原因,产品可以包含一个或多个描述.
我想使用查询构建器,因此我可以将product和product_description结果检索为对象.
目前我正在使用以下代码:
// Get the query builder
$qb = $em->createQueryBuilder();
// Build the query
$qb->select(array('p, pd'));
$qb->from('MyCompanyMyBundle:Product', 'p');
$qb->innerJoin('pd', 'MyCompanyMyBundle:ProductDescription', 'pd', 'ON', $qb->expr()->eq('p.id', 'pd.departmentId'));
$query = $qb->getQuery();
$products = $query->getResult();
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
[Syntax Error] line 0, col 71: Error: Expected Doctrine\ORM\Query\Lexer::T_DOT, got 'MyCompanyMyBundle:ProductDescription'
Run Code Online (Sandbox Code Playgroud)
谁能指出我正确的方向?如果有另一种选择,我会以不同的方式做到这一点.
这是问题所在:
Routing具有属性objectId和的类objectType。objectId是一个int,objectType是一个字符串。这样做的原因是允许同一张表为不同种类的路由保存数据。例如Products,Department和的路由Brand。因此,的组合objectType和objectId我JoinColumn。
如何使用Doctrine2建立这种双向关系?我查看了继承的关系,但是这些概念似乎都不是我想要的。
我可以在数据库中创建一些视图,并且只有几个不同的Routing实体,但这似乎不是最佳途径。
这是我的实体Department,Product和Brand。
../Entity/Department.php
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
* @ORM\Table(name="departments")
*/
class Department implements DescribableInterface
{
/**
* @ORM\Id
* @ORM\Column(name="id", type="integer", length=11)
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(name="status", type="string", length=1)
*/
private $status;
/**
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
...
Run Code Online (Sandbox Code Playgroud)
../Entity/Product.php
use Doctrine\ORM\Mapping as ORM; …Run Code Online (Sandbox Code Playgroud)