创建时触发事件和另一个记录


Fire event on create and another record

我尝试创建公司和用户。当公司创建时,应该创建fire事件。我注册观察员,一切正常。但是用户需要有密码和电子邮件(这些数据是从表单发送的),但公司表没有这些字段。目前,我在Company模型中声明两个字段public $tmpEmailpublic $tmpPassword,而我分配属性,我填充此属性。后来我在我的观察者类中阅读了这个属性,但对我来说这是不够好的方法。我怎样才能做得更好?

简化的例子:

class Company extends Model
{
    $fillable = ['company_name', 'phone_number'];
}
class CompanyObserver
{
    public function created(Company $company)
    {
        print_r($company->company_name);
        print_r($company->tmpPassword);
        print_r($company->tmpEmail);
        $user = new User(['name' => $company->company_name', 'email' => $company->tmpEmail, 'password' => $this->tmpPassword);
    }
}

只是一个想法

在我看来,你在一个模型中创建了太多的目的。Company应该自知。

如果你有一个场景,比如来自表单的操作:

public function actionFromForm(Request $request) {
   $company = //Save your model
   $user = new User(['name' => $company->company_name, 'email' => $request->input('tmpEmail'), 'password' => $request->input('tmpPassword'));
}