データベースにいくつかのテーブルがあります。Blogs
、、、Users
が主なものですPosts
。Tags
また、リンクテーブルがあります:User_blogs
、Blog_posts
&Post_tags
。
私の質問は、Laravelのクラスとメソッドをどのように使用するかbelogs_to()
ですhas_many()
。誰かがそれに光を当てる必要があります。私は多くの記事やドキュメントを読みましたが、それでも混乱しています。
通常、laravelは、テーブルを適切に設定すれば、多対多の関係を検出するのに十分スマートです。中間/ピボットテーブルでは両方のテーブル名を複数形にするべきではありませんUsers
。テーブル。これらのテーブルでは、列は(小文字で)を適切に反映する必要があるため、他の列には、などの3 つの列が必要です。Blogs
Posts
Tags
User_Blog
Blog_Post
Post_Tag
tablename_id
User_Blog
id
user_id
blog_id
モデルでは、多対多の関係を設定するだけです
class User extends Eloquent
{
public function blogs()
{
return $this->has_many_and_belongs_to('Blog');
}
}
などなど、モデルごとに。構造を変更できない場合は、次のように多対多の関係にテーブル名を追加するだけですreturn $this->has_many_and_belongs_to('Blog', 'User_blogs');