我尝试创建公司和用户。当公司创建时,应该创建fire事件。我注册观察员,一切正常。但是用户需要有密码和电子邮件(这些数据是从表单发送的),但公司表没有这些字段。目前,我在Company
模型中声明两个字段public $tmpEmail
和public $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'));
}