- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我遇到了一些奇怪的事情:
我通过 app/console doctrine:generate:entity
创建了三个 doctrine 实体:
我建立了关系,并且一切都与 fixtures 数据一起正常工作(app/console doctrine:fixtures:load
)。
一篇文章属于一个类别 (category_id),并且有一个作者 (user_id)。
我使用 app/console doctrine:generate:crud
为我的所有实体获取 CRUD 操作。
当我更新一个帖子时,我得到了这个奇怪的错误:
ContextErrorException: Catchable Fatal Error: Object of class Proxies__CG__...\BlogBundle\Entity\Category could not be converted to string
为了正确显示我在 PostType()
中使用的下拉字段:
$builder ....
->add('categoryId','entity', array(
'class' => 'HotelBlogBundle:Category',
'property'=>'name'
))
->add('userId','entity',array(
'class'=>'UserBundle:User',
'property'=>'username'
))
因为我指定了 property
选项,所以我的实体类中不需要 __toString()
。
如果我像这样创建一个 __toString()
(在类别和用户实体中),错误就会消失并起作用:
public function __toString()
{
return (string) $this->getId();
}
我不确定我的做法是否正确。
此外,由于 Category
和 User
对象被传递给 category_id
和 user_id
字段,Doctrine(或Symfony) 应该能够找出 id 列。我错过了什么?还有其他方法吗?
最佳答案
我刚遇到这个问题并出现上述错误(并在此处结束),我将发布对我有用的解决方案 - 看到没有其他答案。
与 OP 一样,我也创建了一个新表并使用 Doctrine 加入。
此错误告诉我们连接的对象
无法转换为字符串
。我们必须在对象中提供一个 __toString()
方法,以便将其转换为字符串,或者我们可以使用 property< 指定要在 Form Builder 中返回的字段
键。
__toString()
方法/**
* (Add this method into your class)
*
* @return string String representation of this class
*/
public function __toString()
{
return $this->name;
}
// where `name` equals your field name you want returned
$builder->add('category', null, ['property' => 'name'])
我只是将 __toString()
方法添加到我的 entity
中,我只有字段 id
和 name
- 所以唯一的字符串表示是 name
。
关于php - symfony2 ContextErrorException : Catchable Fatal Error: Object of class Proxies\__CG__\. ..\Entity\... 无法转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23186593/
我正在使用我的项目this处理ini文件的类。我已经使用 Windows EasyPHP 开发了所有项目,但是当我将它放入我的 Linux 网络服务器时,我总是在日志文件中收到此错误(使用 Light
JSONSerialization.data(withJSONObject:options:)(在 Swift 2 中又称为 dataWithJSONObject)被声明为 throws。但是,传递无
我正在尝试在我的一个类(class)上实现 PHP5 的类型提示, class ClassA { public function method_a (ClassB $b) {} } c
我目前正在为我的在职培训做一个项目。但是我遇到了一个无法解决的错误。 因此,我使用 ManyToOne 关系来连接 2 个事物,即类别中的产品。 但是当我想添加一个产品时,我遇到了这个错误: Cont
当我尝试运行 php artisan (anything) 时出现此错误: PHP Catchable fatal error: Argument 2 passed to Illuminate\Ro
我正在玩 try - catch block : loadHTMLFile($str); $domOb->preserveWhiteSpace = false; $container
我正在尝试在 symfony3 中对密码进行编码,但我遇到了一些问题。这是我得到的错误。 Catchable Fatal Error: Argument 3 passed to GMAOBundle\
为什么我会收到以下信息 error: could not find implicit value for parameter C: scalaz.Catchable[F2]执行P(1,2,3).run
我遇到了一些奇怪的事情: 我通过 app/console doctrine:generate:entity 创建了三个 doctrine 实体: 类别 用户 发布 我建立了关系,并且一切都与 fixt
我运行使用 Zend Framework 2 创建的应用程序时出现此错误: Catchable fatal error: Argument 1 passed to Zend\View\HelperPl
我有以下代码,它从数据库中检索页面 slug,然后需要创建相关的子页面: $builder->add('subtocontentoptions', 'entity', array(
我的 symfony 项目中有这个实体: /** * Batiments * * @ORM\Table(name="batiments") * @ORM\Entity * @ORM\Enti
刚从新项目开始,并想尝试ModX将其用于项目,但是会卡在此错误上(它不会消失): **Catchable fatal error: Argument 2 passed to modParser::co
当我在 Controller 中创建一个表单时,如下所示: $form = $this->createFormBuilder() ->add('field_name') ->getFo
我已经读过 this和 this和其他人,但没有人解决我的问题。 我已经删除了所有可能的内容并将范围缩小到一个字段:地址。当我尝试关注 this tutorial 时,如果我遵循它,一切都会正常,从一
我是一名优秀的程序员,十分优秀!