mercredi 4 mai 2016

Build a blog in Laravel with post categories and user preferences

I'm building a blog for fun. In my blog, I have users, posts, and a fixed list of predefined categories.

1) Posts belong to many categories. 2) Users can specify category preferences, and therefore belong to many categories.

I have this set up as a series of many-to-many relationships:

In User.php:

/**
* A user belongs to many categories
*/
public function categoryPreferences()
{
    return $this->belongsToMany('App\Category');
}

In Post.php:

/**
* A Post Can Have Many Likes
*
* @return \Illuminiate\Database\Eloquent\Relations\belongsToMany
*/

public function categories()
{
return $this->belongsToMany('App\Category');
}

And the inverse of each in Category.php:

/**
* A category belongs to many users
*/
public function users()
{
return $this->belongsToMany('App\User');
}

/**
* A category belongs to many posts.
*
* @return \Illuminiate\Database\Eloquent\Relations\belongsToMany
*/

public function posts()
{
return $this->belongsToMany('App\Post');
}

I have corresponding category_post and category_user join tables to support each relationship. However, I may be thinking about this incorrectly.

I would like to display a loop of posts that belong to categories that users have specified, but can't work through how to do that. I can easily collect a user's category preferences with:

$categories = $user->categoryPreferences->pluck('id');

And can do the same for posts:

$categories = $post->categories->pluck('id')

However, I'm unsure how to merge the two collections together. I've looked into polymorphism, but that doesn't seem quite right. Can someone point me toward the correct concept?



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/1SNnkNQ
via IFTTT

Aucun commentaire:

Enregistrer un commentaire