Suppose we have two models: Users
, and Posts
. These models have many-to-many relationship defined between them - a user can have many posts, and post can have many editors(users).
When this form is submitted to PostsController
, it's store
action must handle not only the new post's fields, but also it's editors, which seems wrong. Example:
public function store()
{
// creating a post
$post = Post::create(request()->get('post_fields'));
// adding editors to the post (this should be done somewhere else)
$editors = request()->get('editors');
foreach($editors as $editor){
$post->editors()->attach($editor->id);
}
return redirect('/');
}
As I already mentioned, this approach seems wrong and clumsy to me. Because of this I want to delegate editors handling task to PostsEditorsController
, which will be a separate controller dedicated only to posts-editors
relationship management. So the store
will now look something like this:
public function store()
{
// creating a post
$post = Post::create(request()->get('post_fields'));
$editors = request()->get('editors');
PostsEditorsController::doSomething($post, $editors); // <-- just to show what I want to achieve
return redirect('/');
}
How can I do this?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire