Symfony,ODM:如何设置乘法ID注释

时间:2017-02-13 16:55:51

标签: php mongodb symfony doctrine doctrine-odm

所以问题是如何提供两个或更多标识符键?我在谷歌搜索中找不到关于这个问题的任何答案......这是例子:

class Customer
{
    /**
     * @ODM\Id
     *
     * @JMS\Expose
     * @JMS\Type("string")
     *
     */
    protected $id;

    /**
     * @var integer
     * @ODM\Id(strategy="INCREMENT")
     *
     * @JMS\Expose
     * @JMS\Type("integer")
     *
     */
    protected $customerId;

所以在这种情况下,我有第二个id,在我写的时候会增加,但是第一个id变为null。如果我删除并只写* @ODM\Field(type="integer")一切正常,但customerId没有增加。那么我怎样才能在文档中输入ID?或者我错了,我不这样做?

2 个答案:

答案 0 :(得分:1)

标识符自动映射为import Tkinter as tk class MainWindow(tk.Frame): def __init__(self, parent, *args, **kwargs): tk.Frame.__init__(self, parent, *args, **kwargs) self.parent = parent self.olFrame = tk.LabelFrame(text = 'Initial Frame', bg = 'grey') self.olFrame.grid(column = 0, row = 0, sticky = 'w') self.simpleButton = ButtonField(self.olFrame, text = "Press Me",bg= "green" ,command = ButtonField(self).pressMe) self.simpleButton.grid(column = 0, row = 0) class ButtonField(tk.Button): def __init__(self, parent, *args, **kwargs): tk.Button.__init__(self, parent, *args, **kwargs) self.parent = parent def pressMe(self): print "In Press Me Method" self.configure(text = "Pressed Now", background = "yellow") #self.parent.configure(self, text = "Pressed Now", background = "yellow") #returns TclError: unknow option "-text" root = tk.Tk() root.geometry('500x400') root.title('Test GUI') root.configure(background = "black") a = MainWindow(root) root.mainloop() 字段,因此只能将1个字段映射为_id

过去做过类似的事情,我建议将@Id保留为文档标识符,并在代码中生成递增的\MongoId,而不是依赖ODM来执行此操作。制作这样的生成器非常简单,你需要挂钩持久化文档(无论是在你的域代码中,我建议,还是利用customerId事件)并编写类似于ODM的生成器IncrementGenerator

答案 1 :(得分:0)

根据此文档,您只能拥有另一个整数作为复合键的一部分的两个键字符串: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html

所以试试:

PHAssetResourceManager

我认为这应该适合你。