Laravel多对多多态查询返回NULL

时间:2014-11-07 20:51:19

标签: php laravel polymorphism eloquent

我一直在研究这个问题几个小时,无法找出一个简单问题的答案。我似乎无法通过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();
});

如果您需要任何其他代码,请告诉我们。我已经走到了尽头。

0 个答案:

没有答案