0

データベースにいくつかのテーブルがあります。Blogs、、、Usersが主なものですPostsTagsまた、リンクテーブルがあります:User_blogsBlog_postsPost_tags

私の質問は、Laravelのクラスとメソッドをどのように使用するかbelogs_to()ですhas_many()。誰かがそれに光を当てる必要があります。私は多くの記事やドキュメントを読みましたが、それでも混乱しています。

4

1 に答える 1

1

通常、laravelは、テーブルを適切に設定すれば、多対多の関係を検出するのに十分スマートです。中間/ピボットテーブルでは両方のテーブル名を複数形にするべきではありませんUsers。テーブル。これらのテーブルでは、列は(小文字で)を適切に反映する必要があるため、他の列には、などの3 つの列が必要です。BlogsPostsTagsUser_BlogBlog_PostPost_Tagtablename_idUser_Blogiduser_idblog_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');

于 2013-03-06T18:35:49.617 に答える