我想通过调用create方法创建一个新用户,如下所示:
User::create([
'phone_number' => '09121231212',
'country_code' => 'ir',
]);
我想通过电话号码mutator中的Propaganistas\LaravelPhone
包将电话号码格式更改为国际电话号码格式,如下所示:
public function phoneNumber(): Attribute
{
return Attribute::make(
get: fn ($value) => (new PhoneNumber($value, $this->country_code))->formatNational(),
set: fn ($value) => (new PhoneNumber($value, $this->country_code))->formatE164(),
);
}
问题是,在phone_number变元(set)中,我无法访问create数组中定义的country_code,因此在将phone_number插入数据库之前,我无法更改其格式。
另外,我不想合并country_code来请求并在mutator中得到它。有更好的解决方案吗?
1条答案
按热度按时间vhipe2zx1#
根据文档,您可以通过向闭包添加第二个参数来访问getter中的其他属性:
看起来您只能访问自定义造型中模型的其他属性: