[英]Laravel 5: Creating new models in controllers
在Laravel 5控制器中创建新模型的正确方法是什么? 我不想直接使用模型类名,而是将它们注入到控制器的构造函数中,如下所示:
public function __construct(User $user) {
$this->user = $user;
// ...
}
要在User模型上操作,我通常会使用controller的属性,如下所示:
$target = $this->user
->women()
->whereBetween('age', [18, 29])
->get();
但是如何使用$this->user
创建新模型? 通常我更喜欢使用new User;
然后分配属性然后使用$user->save();
。 但这种方式相当不可能,不是吗? 我知道有create()
方法,在这种情况下可以工作,如下所示:
$girl = $this->user->create([
'name' => 'Jessica Hottie',
'age' => 21
]);
但是这种方式我失去了使用associate()
方法等的可能性。
我还需要使用create()
,还是有更好的方法来处理模型依赖?
你可以这样做
$girl = $this->user->newInstance($attributes); //this doesn't save the model yet
$girl->relation->associate($some_other_model);
$girl->save();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.