Lars-Janssen's avatar

Laravel controller structure

Hello,

I'm building a forum so I've got a message controller. In this controller I've got the method show(). Obviously that's showing a message. But now I would like to show all messages that belong to the user and new messages . Should I put it in the same controller or what's the best way to tackle this?

0 likes
2 replies
martinbean's avatar
Level 80

@lars64 If you have messages that belong to a user, then that suggests to me a nested resource controller:

Route::get('users/{user}/messages', 'UserMessagesController@index');
class UserMessagesController extends Controller
{
    public function show(User $user)
    {
        $messages = $user->messages()->latest()->paginate();

        return view('user.messages.index', compact('user', 'messages');
    }
}
1 like

Please or to participate in this conversation.