繁体   English   中英

Laravel 5:在控制器中创建新模型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM