You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从stdClass对象提取信息?Laravel Mailable赋值from属性报错如何解决

错误原因

你自定义的Mailable类继承了Laravel自带的Illuminate\Mail\Mailable基类,基类中已经预先定义了$from属性,该属性的预期数据结构为包含address、name两个键的数组,而非纯字符串。
你直接将数据库取出的邮箱字符串赋值给$this->from后,Laravel内核后续处理发件人逻辑时,会尝试以数组形式读取$this->from['address'],此时就会触发“无法在字符串上访问字符串类型偏移”的报错。
而subject、content属性要么是你在自定义类中自行声明的字符串类型属性,要么基类的对应属性本身就支持字符串直接赋值,因此不会触发错误。

正确实现方式

推荐直接调用Mailable基类自带的from()方法设置发件人,不需要直接操作属性:

// 仅设置发件人邮箱
$this->from($this->data->from);

// 若需要设置发件人显示名,传第二个参数即可
$this->from($this->data->from, '你的站点名称');

如果确实需要直接给$from属性赋值,需要按要求传入指定结构的数组:

$this->from = [
    'address' => $this->data->from,
    'name' => null // 替换为你需要的发件人显示名即可
];

内容的提问来源于stack exchange,提问作者Artur Müller Romanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:24:04