小编ABC*_*ABC的帖子

symfony2 ContextErrorException:Catchable Fatal Error:类Proxies\__ CG __\...\Entity\...的对象无法转换为字符串

我遇到了一些奇怪的事:

我通过app/console doctrine:generate:entity以下方式创建了三个学说实体:

  • 类别
  • 用户
  • 岗位

我建立了关系,一切都与灯具数据(app/console doctrine:fixtures:load)一致.

帖子属于单个类别(category_id),并且有一个作者(user_id).

我曾经app/console doctrine:generate:crud为我的所有实体获得CRUD操作.

当我更新帖子时,我得到了这个奇怪的错误:

ContextErrorException:Catchable Fatal Error:类Proxies__CG __...\BlogBu​​ndle\Entity\Category的对象无法转换为字符串

为了正确显示我在下面使用的下拉字段PostType():

$builder ....
  ->add('categoryId','entity', array(
     'class' => 'HotelBlogBundle:Category',
     'property'=>'name'
))
->add('userId','entity',array(
     'class'=>'UserBundle:User',
     'property'=>'username'
))
Run Code Online (Sandbox Code Playgroud)

由于我指定了property选项,因此我不需要__toString()在我的实体类中使用.

如果我创建__toString()这样的(在类别和用户实体中),错误就会消失并且有效:

public function __toString()
{
    return (string) $this->getId();
}
Run Code Online (Sandbox Code Playgroud)

我不确定我是否以正确的方式做到了.

此外,由于Category&User对象被传递给category_iduser_id字段,Doctrine(或Symfony)应该能够找出id列.我错过了什么?还有另一种方法吗?

php orm doctrine tostring symfony

4
推荐指数
1
解决办法
9596
查看次数

Symfony2覆盖第三方软件包中的部分模板

我正在为我的项目使用SonataAdminBundle,我想覆盖一个块.

如果我在app/Resources/views/SonataAdminBundle/views/standard_layout.html.twig清除缓存中创建模板并执行此操作:

{% extends 'SonataAdminBundle::standard_layout.html.twig' %}

{% block theBlockIWantToOverride %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

我收到一个Maximum function nesting level of '250' reached, aborting!错误.

如果我删除该extends部件,则会呈现空白页面.相反,我必须将整个文件内容复制到这个新文件,然后更改块内容.我知道这是Symfony2的工作原理,我只是不知道是否有一个没有所有代码的解决方法?

我想这样做的原因是因为我使用了SensioLabsInsight而且它一直在困扰raw着SonataAdminBundle使用的枝条过滤器.我知道我可以忽略警告,但感觉不对.

此外,我尝试通过创建一个包来覆盖该包php app/console generate:bundle,然后在src/Vendor/AdminBundle/VendorAdminBundle.php中添加:

/**
 * {@inheritdoc}
 */
public function getParent()
{
    return 'SonataAdminBundle';
}
Run Code Online (Sandbox Code Playgroud)

并完成了上述过程,添加了一个src/Vendor/AdminBundle/Vendor/Resources/views/standard_layout.html.twig没有解决问题.再次,得到了嵌套级错误.

php symfony twig sonata-admin

4
推荐指数
1
解决办法
3856
查看次数

PHP将数字增加一个

这是一个棘手的问题:我想为这个数字加上+1:012345675901,预期的结果是:012345675902.相反,我得到:2739134当我这样做时:

echo (012345675901+1);
Run Code Online (Sandbox Code Playgroud)

当我尝试:

echo ('012345675901'+1);
Run Code Online (Sandbox Code Playgroud)

我明白了:12345675902这与我需要的非常接近,但它消除了前导零.

当我这样做:

echo (int) 012345675901;
Run Code Online (Sandbox Code Playgroud)

我得到2739133.我也试过bcadd()但没有成功:

echo bcadd(012345675901, 1);
Run Code Online (Sandbox Code Playgroud)

结果导致了2739134.

我知道我在这里遗漏了一些东西.我将衷心感谢您的帮助!

更新1 答案1说数字是八进制的:

function is_octal($x) {
    return decoct(octdec($x)) == $x;
}

$number = is_octal(012345675901);
echo var_dump($number);
Run Code Online (Sandbox Code Playgroud)

以上返回false.我以为我需要将它从八进制转换为普通字符串但不起作用.我不能避免不使用上面的数字 - 我只需要增加一个.

编辑2

这是正确的代码:

$str = '012345675901';

$str1 = ltrim($str, '0'); // to remove the leading zero
$str2 = bcadd($str1, 1); // +1 to your result
$str3 = strlen($str); // get the length of your …
Run Code Online (Sandbox Code Playgroud)

php math numbers

3
推荐指数
1
解决办法
983
查看次数

基于变量字符串访问php多维数组键

我已经将XML路径存储到字符串中的项目,如下所示:response->items->item.

我需要做的是访问一个名为$ xml_array的数组,如下所示:

$ xml_array [ '响应'] [ '项目'] [ '项目']

当我在代码中写它时,它工作.问题是我希望它能够在飞行中完成.

我用它来转换response->items->item['response']['items']['item']:

$xml_path = 'response->items->item';
$explode_path = explode('->', $xml_path);
$correct_string = false;

foreach($explode_path as $path) {
   $correct_string .= '[\''.$path.'\']';
}
Run Code Online (Sandbox Code Playgroud)

问题是我无法$xml_array通过这样做访问:$xml_array[$correct_string]

所以我最终得到了这个:

$xml_tag = 'title';
$xml_path = 'response->items->item';

$correct_string = '$items = $xml2array';

$explode_path = explode('->', $xml_path);

foreach($explode_path as $path) {
    $correct_string .= '[\''.$path.'\']';
}
$correct_string .= ';';

eval($correct_string);
foreach($items as $item) {
    echo $item[$xml_tag].'<br />';
}
Run Code Online (Sandbox Code Playgroud)

$xml_array通过 …

php arrays

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

标签 统计

php ×4

symfony ×2

arrays ×1

doctrine ×1

math ×1

numbers ×1

orm ×1

sonata-admin ×1

tostring ×1

twig ×1