抱歉,标题混乱。
所以,我有一个基本的用户模型,我正在尝试注册一个新用户,这是我的用户表中的一个字段,是一个“ screen_name”,我希望将其与第一个自动归档名称属性中的“单词”。
我该怎么做?
我尝试过
public function setScreenNameAttribute($value){
return 'MyFirstName';
}
但是据我了解,只有当我在表单请求中有此字段时,才会触发set *** Attribute,但是我不希望用户填写此字段,我希望模型自己完成此操作
答案 0 :(得分:0)
模型
public function setScreenNameAttribute($value)
{
$this->attributes['screen_name'] = strtolower(strtok($value, ' ')); // First name from the full name as screen name
}
控制器
$user->screen_name = 'John Smith'; // your request value goes here - $request->full_name;
您不需要在表单中填写该字段。
希望这会有所帮助。
让我知道是否无效。
已更新的/ Anohter解决方案。
protected $attributes = array(
'screen_name' => 'Your name' // Any values
);
public function __construct(array $attributes = array())
{
$this->setRawAttributes(array(
'screen_name' => strtolower(strtok($attributes->first_name, ' '));
), true);
parent::__construct($attributes);
}