sql >> データベース >  >> RDS >> Mysql

Eloquent多形関係を使用してLaravelのデータを分類する

    さて、あなたのデータベースとあなたのモデル定義は、記事にカテゴリーを追加するためのあなたのコードと同様に、うまく見えます。ただし、カテゴリに記事を追加するためのコードは少しずれています。

    まず、$category->articles()はありません。 方法。関連するオブジェクトにアクセスするには、定義された関係を使用します:$category->categorizable() 。また、関係属性$category->categorizable ロードされた関連オブジェクトが含まれ、自動的にArticleになります またはService 何が関連しているかに応じて、オブジェクト。

    次に、これはmorphTo()です。 関係の側面; belongsTo()のように動作します 、および同様の方法があります。たとえば、save()はありません メソッドですが、associate()があります 方法。つまり、最初に記事を作成してから、それをカテゴリに関連付ける必要があります。また、associate() 自動的に保存されないので、それも呼び出す必要があります。

    $article = new App\Article();
    $article->title = 'This is an article title.';
    $article->save();
    
    $category = App\Category::find(1);
    $category->categorizable()->associate($article);
    $category->save();
    
    // showing use of relationship attribute
    $related = $category->categorizable;
    echo get_class($related);
    



    1. RubyonRails用のUbuntuへのPostgreSQLのインストール

    2. MVC5Mqsqlの問題

    3. ストアド関数またはプロシージャを呼び出しても、変更は挿入および永続化されません

    4. MySQLでのRTRIM()関数のしくみ