我一直在研究这个问题几个小时,无法找出一个简单问题的答案。我似乎无法通过morphedByMany检索我的多态多对多。相关代码如下:
标记模型代码段:
class Tag extends Eloquent
{
protected $table = 'tags';
public function posts()
{
return $this->morphedByMany('Post', 'taggable');
}
Post Model片段:
class Post extends Eloquent
{
protected $table = 'posts';
public $incrementing = false;
public function tags()
{
return $this->morphToMany('Tag', 'taggable');
}
违规行。尽管我可以在数据库中看到标签的帖子和帖子的标签,但无论我调整什么,这一行都会返回NULL:
$posts = Tag::find(1)->posts;
架构(注意我也尝试了这一点而没有索引这些字段,并且还在tag_id上有一个外键):
Schema::create('taggables', function(Blueprint $table)
{
$table->increments('id');
$table->string('taggable_type')->index();
$table->bigInteger('taggable_id')->index();
$table->integer('tag_id')->unsigned()->index();
$table->timestamps();
});
如果您需要任何其他代码,请告诉我们。我已经走到了尽头。