我在我的cakephp应用程序中收到此错误
警告(512):SQL错误:1054:'字段列表'中的未知列'Category.post_id'[CORE \ cake \ libs \ model \ datasources \ dbo_source.php,第684行]
我假设这个错误是由我在模型中设置关系引起的,因为错误表明它正在寻找'Category.post_id',这是一个不存在的字段。
这是类别模型代码:
class Category extends AppModel {
var $name = 'Category';
var $belongsTo = 'Post';
}
并发布模型代码:
class Post extends AppModel {
var $name = 'Post';
var $belongsTo = 'User';
var $hasMany = 'Category';
}
它显示了几种方法,但这是我的帖子索引操作:
function index() {
$this->set('posts', $this->Post->find('all'));
}
知道如何解决这个问题吗?
答案 0 :(得分:0)
使用列id,post_id,category_id创建另一个名为posts_categories的表。
然后你的帖子模型
class Post extends AppModel {
public $name = 'Post';
public $hasAndBelongsToMany = array('Category');
}
然后你分类模型
class Category extends AppModel {
public $name = 'Category';
public $hasAndBelongsToMany = array('Post');
}
答案 1 :(得分:0)
您应该在模型中建立主键ID,如果它与autogenerated不同(对于模型发布它是post_id)。因此,如果您的表主键名称为“id”,则您的帖子模型应为
class Post extends AppModel {
var $name = 'Post';
var $belongsTo = 'User';
var $hasMany = 'Category';
var $primaryKey = 'id';
}
答案 2 :(得分:-1)
我的数据库中没有post_id字段。添加了该列,我的问题就解决了。