【发布时间】:2017-06-01 15:48:38
【问题描述】:
Laravel 5.4.*
我有以下控制器和功能:
作者控制器
class AuthorController extends Controller {
public function store(StoreAuthor $request) {
Author::create($request->all());
return response()->json(["message" => "done"]);
}
}
BookController
class BookController extends Controller {
public function store(StoreBook $request) {
Book::create($request->all());
return response()->json(["message" => "done"]);
}
}
类别控制器
class CategoryController extends Controller {
public function store(StoreCategory $request) {
Category::create($request->all());
return response()->json(["message" => "done"]);
}
}
还有更多类似的。
我通过 FormRequest 处理验证和安全性,这既简洁又优雅。
之前有人问过我想要实现的目标,但我还没有真正找到适合我的解决方案。
我想发送一个表格并保存许多相关的模型。
我想我会发送一个 json 对象,其中包含所有模型的数据,如下所示:{author:author, book:book, category:category, ....}
我应该创建一个不同的控制器来处理多个模型的逻辑吗?如果是这样,我如何避免在原始控制器中重复逻辑?
我是否应该为每个控制器创建一个可以为其他控制器保存的特征(即:AuthorTrait)?如果是这样,我如何保留 formRequest 验证和策略逻辑?
我见过 laravel 方法 associate 和 attach,但它们似乎只有在已经创建记录的情况下才有效。
我首先想到的是链接不同的控制器方法,但这对我来说似乎真的很不干净。
谢谢。
【问题讨论】:
标签: php laravel model controller eloquent