前提
laravelを始めて1年くらい経ちます。
ドメイン駆動設計というのを聞いて、
EloquentモデルをviewやControllerで使い回さない設計方法をしたいです。
laravelで通常開発を行う場合、/student/{student}/addなどと記載して、
コントローラーのメソッドに以下のように記載すれば良いかと思います。
public function show(Student $student)
{
///////
return view('student.add', compact('student'));
}
実現したいこと
これをモデル以外のデータをルートパラメータに追加するにはどのようにすれば良いでしょうか?
また、例えば、Entitiy/Studentをパラメータに取り扱う場合はそもそもEloquentモデルではないので、パラメータに追加はできないのでしょうか?(試して見たところ使えませんでした。)
もしそうでない場合以下のことで困っております。
/student/{id}/addなどとして、コントローラーは以下のようにする
public function show($id)
{
//idからStudentEntitiyを引っ張るuseCaseを呼び出す。
}
ただ、その場合はですが、わざわざこのために
useCase、それに紐づくRepository、Interfaceを作成するのはコストがかかるかなと思います。
ですが、このようにルートパラメータを使用するケースは多くあると思いますが、
このようなケースの場合どのようにすれば良いのでしょうか?
ドメイン駆動設計と書いてありますが、EloquentモデルをDTOの形にして、
ルートパラメータで取り扱う方法を知りたいです。
稚拙な内容ですがご回答よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/02 07:29