ユーザーがプロジェクトを作成でき、それに他のユーザーがコメントできるようなサイトを想定しており、
同じview(project/detail.blade.php)で表示項目が3種類くらいパターンがあり悩んでおります。
状況
特定のプロジェクトページ(project/xxxxxxx)をそれぞれのユーザーが見たときに、
ログイン済ユーザーAにはprojectでコメントしてないのでコメントフォームが見えている。
ログイン済ユーザーBにはprojectでコメント済なのでフォームではなく自分のコメントが見えている。
ログイン済ユーザーC(プロジェクトオーナー)は、オーナーなのでフォームではなく、参加者一覧とコメント一覧が見えている。
質問
このような表示パターンが複数存在する場合はどのようにcontrollerを組み立てviewで分岐させればいいんでしょうか?
悩んでいるポイント
- ProjectControllerを処理を分けたほうがいいのか、どう分けるのか
理由:関係のないsqlを発行するのが無駄そう
- 表示させるview自体を分けたほうがいいのか
理由:1つのviewで色々やろうとして見にくくなりそう?
class Project extends Controller { public function detail($id){ #プロジェクトの詳細を取ってくるEloquentで、projectやリレーションでcommentsも取ってくる。 #参加者一覧を取ってくるEloquent #$idとAuthのidから自分のコメント取得するEloquent } } Project/detail.blade.php #共通の表示 #if オーナーなら 参加者一覧表示 コメント一覧表示 # if 自分のコメントないなら コメントフォーム出す # else 自分のコメント表示
以前にDBについても質問させていただいた関連になります。
https://teratail.com/questions/245052
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/12 13:14