create()可以作为一对一关系中的associate()的替代吗?

时间:2017-05-10 06:22:53

标签: php laravel laravel-5.3

假设有两个类,

1- User
2- Contact

他们有1-1关系:

User ->hasOne(Contact)
Contact ->belongsTo(User)

现在根据Laravel 5.x文档,我需要"关联"孩子到父母。

$contact = Contact::create($input);
$user = Auth::User();
$contact->user()->associate($user);

但我看到代码做同样的事情"协会"如下: -

$user->contact()->create($input);

假设我的理解是正确的,这两者都会产生相同的结果。那么为什么Laravel Docs中没有提到这一点,对于一个初学者而言,它会让人感到困惑,因为这些文档在整个地方都是如此。#34;

其次,如果这是一种黑客攻击,或者是一种解决方法,那么比较这两者会有什么影响。

1 个答案:

答案 0 :(得分:1)

它是相同的,显然有时取决于你的应用程序,需要关联方式,但如果你可以选择$user->contact()->create($input);作为其更短/更清洁。