php - 即使字段不在表单请求中,如何在 laravel 模型中填充字段
问题描述
抱歉标题凌乱。
所以,我有一个基本的用户模型,我正在尝试注册一个新用户,问题是我在用户表中的一个字段是一个“屏幕名称”,我想用第一个“单词”自动归档从名称属性。
我怎样才能做到这一点?
我试过了
public function setScreenNameAttribute($value){
return 'MyFirstName';
}
但据我了解,只有在我的表单请求中有此字段时才会触发 set***Attribute,但我不希望用户填写此字段,我希望模型自己完成。
解决方案
模型
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);
}
推荐阅读
- sql - 如何根据条件pgsql更新特定的列名
- c# - 通过 iTextSharp 插入图像代替 pdf 中的便签不正确
- python - 安装 AppKit 时,命令出错,退出状态为 1。我该如何解决这个问题?
- plot - 为什么使用绘图时 Octave 会显示错误?
- visual-studio-code - 如何在 VS Code 中的注释生成的提示中显示新行
- php - 如何在 php 中从 google api 获取“电子邮件”
- css - 如何在 Next.js 中正确自定义 React-Bootstrap Saas 变量?
- image - 如何将所有图像加载到mainActivity
- ffmpeg - 使用硬件编码流式传输到 youtube
- python - 如何将 QWidget 类中的 lineedit 字符串共享到工作线程