Laravel 4.1: właściwy sposób na odzyskanie wszystkich relacji morphedBy?

Właśnie przeprowadziliśmy migrację do wersji 4.1, aby skorzystać z tej potężnej funkcji. wszystko wydaje się działać poprawnie podczas pobierania indywidualnych relacji „morphedByXxxx”, jednak podczas próby pobrania wszystkich modeli, które dany znaczniknależy do - Dostaję błąd lub brak wyników.

$tag = Tag::find(45); //Tag model name = 'awesome'

//returns an Illuminate\Database\Eloquent\Collection of zero length
$tag->taggable; 

//returns Illuminate\Database\Eloquent\Relations\MorphToMany Builder class
$tag->taggable();

//returns a populated Collection of Video models
$tag->videos()->get();

//returns a populated Collection of Post models
$tag->posts()->get();

Klasa My Tag Model wygląda tak:

class Tag extends Eloquent
{
    protected $table = 'tags';
    public $timestamps = true;

    public function taggable()
    {
        //none of these seem to function as expected,
        //both return an instance of MorphToMany

        //return $this->morphedByMany('Tag', 'taggable');
        return $this->morphToMany('Tag', 'taggable');

        //this throws an error about missing argument 1
        //return $this->morphToMany();
    }

    public function posts()
    { 
        return $this->morphedByMany('Post', 'taggable');
    }


    public function videos()
    { 
        return $this->morphedByMany('Video', 'taggable');
    }

}

A modele Post i Video wyglądają tak:

class Post extends Eloquent
{
    protected $table = 'posts';
    public $timestamps = true;

    public function tags()
    {
        return $this->morphToMany('Tag', 'taggable');
    }

}

Mogę dodawać / usuwać znaczniki do postów i filmów, a także pobierać powiązane posty i filmy wideo dla dowolnego tagu -jednak - jaki jest właściwy sposób pobierania wszystkich modelimający nazwa tagu „awesome”?

questionAnswers(2)

yourAnswerToTheQuestion