如果可以为现有模型设置 Controller 操作的类型提示,并通过这种方式强制操作使用 post 方法传递的数据实例化模型(如果 post 字段与模型字段匹配),那就完美了。我从 asp.net MVC 知道这一点,它工作得很好,但找不到在 Laravel 中做类似事情的方法。
提前谢谢
最佳答案
好吧,假设您在 User
模型上设置了 $fillable
属性,则可以通过如下方式完成:
class UserService
{
protected $user;
public function __construct()
{
$this->user = User::create(request()->all());
}
public function getUser()
{
return $this->user;
}
}
class UserController
{
public function store(UserService $service)
{
$user = $service->getUser();
return redirect()->route('users.show', $user);
}
}
但这是相当不标准的行为。我认为没有必要像这样自动创建模型,更合理的是放入 Controller 中:
$user = User::create($request->all());
你还应该考虑的是应该填写的字段,最合理的是直接传递应该使用哪些字段,例如这样:
$user = User::create($request->only('name','email','password'));
关于laravel - 是否可以将模型传递给 Laravel 操作并使用匹配的发布数据自动实例化它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47237006/