我想在两个DAO之间做一对多/多对一的关系。
在注释属性后,我在结果中有一个意外且无限制的对象。
str.unpack('M')[0].force_encoding('UTF-8')
并且
/**
* TicketSponsorDAO
*
* @ORM\Table(name="ticket_sponsor")
* @ORM\Entity
*/
class TicketSponsorDAO {
/**
* @var int
*
* @ORM\Column(name="ticket_id", type="integer")
*/
private $ticketId;
/**
* @ORM\ManyToOne(targetEntity="TicketDAO", inversedBy="sponsors")
* @ORM\JoinColumn(name="ticket_id", referencedColumnName="id")
*/
private $ticket;
...
}
执行时:
/**
* TicketDAO
*
* @ORM\Table(name="ticket")
* @ORM\Entity
*/
class TicketDAO
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="TicketSponsorDAO", mappedBy="ticket")
*/
private $sponsors;
public function __construct() {
$this->sponsors = new ArrayCollection();
}
...
}
我有关于票证DAO的良好属性,但关系不起作用,我有一个无限制的对象被返回。
所以在MySQL数据库中,我有外键,FK索引和主键。
答案 0 :(得分:2)
使用symfony dumper,因为您有循环引用。
dump($spo);
答案 1 :(得分:0)
你好var_dump()将返回你的对象和类的类型。
你应该尝试获取这样的属性
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.barHideOnTapGestureRecognizer.addTarget(self, action: #selector(barHideAction(_:)))
let searchController = UISearchController(searchResultsController: nil)
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
navigationController?.hidesBarsOnTap = true
}
@objc func barHideAction(_ guesture: UITapGestureRecognizer) {
updateFrame()
}
func updateFrame() {
if let nc = navigationController {
let isHidden = nc.isNavigationBarHidden
searchController.searchBar.superview?.isHidden = isHidden
if isHidden {
self.additionalSafeAreaInsets.top = -64 // fixed by a magic num
}
else {
self.additionalSafeAreaInsets.top = 0
}
}
}
它会返回一个数组或者可能是一个集合;
答案 2 :(得分:0)
对我来说,看起来一张票有很多赞助商,在这种情况下我只看到一个问题。 id
表格中没有auto_increment TicketSponsorDao
,但有ticket_id
列,我不明白其目的。
/**
* TicketSponsorDAO
*
* @ORM\Table(name="ticket_sponsor")
* @ORM\Entity
*/
class TicketSponsorDAO {
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
...
}
答案 3 :(得分:0)
在它与OneToMany / ManyToOne关系的逻辑之间有一个递归,因为One的对象在Many的对象中被引用,...
var_dump没有正确管理它。
要显示我从Symfony使用dump
的对象,这很好!
如果转储显示在浏览器中,我们可以在DAO类中添加__toString
return serialize($this)
。
否则,我们有一个错误:
... ENTITY无法转换为字符串...