多对多关联

2018-03-11 11:26:17 阅读:8 编辑

文章与标签多对多关联,一篇文章对应多个标签,一个标签对应多篇文章

1).Post.php
<?PHP

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{public function user ()
    {return $this->belongsTo (User::class)->select (["id","email"]);
    }

    public function tags ()
    {return $this->belongsToMany (Tag::class);
    }
}

2. Tag.php

<?PHP

namespace App;

use Illuminate\Database\Eloquent\Model;

class Tag extends Model
{public function posts ()
    {return $this->belongsToMany (Post::class);
    }
}
3. PostTag.php

Laravel 框架默认为不带 s 的表名。该 post_tag 表从相关型号名称的字母顺序派生而来,p 比 t 小,所以 post 放前面

<?PHP

namespace App;

use Illuminate\Database\Eloquent\Model;

class PostTag extends Model
{protected  $table  = "post_tag";}