在我的Yii应用程序中,我有一个非常简单的模型设置。我使用gii自动生成的代码创建了基本的CRUD,同时我获取了适用于我的应用程序的数据。如何让Yii中的相关模型为空
所以,我有作者和书籍。一本书属于作者。
我有一大堆书已经可以输入 - 但是因为我还没有进入作者 - 我的书没有一个会保存,因为当我保存“试图获取非对象的属性”时没有选择作者 - 尽管没有让作者“需要”。
由于我没有得到我的由作者(这是标题的CSV列表中直表),这是防止我保存任何书籍组织书籍列表。
如何使作者可选?
在我的Yii应用程序中,我有一个非常简单的模型设置。我使用gii自动生成的代码创建了基本的CRUD,同时我获取了适用于我的应用程序的数据。如何让Yii中的相关模型为空
所以,我有作者和书籍。一本书属于作者。
我有一大堆书已经可以输入 - 但是因为我还没有进入作者 - 我的书没有一个会保存,因为当我保存“试图获取非对象的属性”时没有选择作者 - 尽管没有让作者“需要”。
由于我没有得到我的由作者(这是标题的CSV列表中直表),这是防止我保存任何书籍组织书籍列表。
如何使作者可选?
所以答案比我意识到的要简单 - 我的关系错了。而不是“属于”我需要一个“有一个”。有一个关系允许空值。
在该“规则”的书模型的功能,你应该看到这样的事情:
array('...','...','author', 'required'),
所有你需要做的就是从阵列中删除的“作者”属性,因此它不再是需要。当然这只有在DB的Book表中的'author'列被标记为不需要时才有效。
我希望它可以帮助你,但我恐怕它不会解决你的问题。您收到的错误消息“尝试获取非对象的属性”,表明您在提交的表单中存在另一个问题,而不是未设置的必需属性。如果是这种情况,您可以发布BooksController的“创建”功能和相关的“_form”视图以确定发生了什么问题。
你可以导入你的作者首先,但这可能不会工作,要么因为你的CSV不会有它的AUTHOR_ID
如果我是你,我会删除外键(而不是AUTHOR_ID场,只是FK),并导入我的书,然后加入作家和再次进行添加外键时,确保数据的完整性,并用它在未来
的Yii如果你不会抱怨
谢谢你的想法 - 恐怕它没有帮助。我没有将author_id作为必填字段。如果我没有为图书设置*有效*作者ID,则在验证甚至被检查之前出现上述错误。这与关系有关,但我不知道如何让Yii在相关领域允许“空”值。 – Hippyjim 2011-12-20 23:45:48