所以问题是如何提供两个或更多标识符键?我在谷歌搜索中找不到关于这个问题的任何答案......这是例子:
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?或者我错了,我不这样做?
答案 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
我认为这应该适合你。