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

Laravel Livewire数据存储报错:Attempt to read property 'name' on array咨询

解决Laravel Livewire中「Attempt to read property 'name' on array」报错问题

错误原因分析

  • Livewire的$this->validate()方法返回的是关联数组,而非对象,你使用$validatedData->name这种对象属性访问语法,会导致对数组使用属性访问的错误。
  • 定义$store数组时,元素结尾误用了分号;,这是PHP数组语法错误,元素间需用逗号,分隔。

修复后的Livewire代码

public $name;
public $email;
public $date_of_join;

public function submit() 
{
    $validatedData = $this->validate([
        'name'          => 'required',
        'email'         => 'required', 
        'date_of_join'  => 'required',        
    ]);       

    $store = [
        'name'          => ucwords(strtolower($validatedData['name'])),
        'email'         => $validatedData['email'], 
        'date_of_join'  => date("Y-m-d", strtotime($validatedData['date_of_join']))
    ];
    
    User::create($store);
}

额外优化建议

由于你已经在组件中声明了$name、$email、$date_of_join公共属性,验证通过后可以直接使用这些属性构建存储数组,代码更简洁:

public function submit() 
{
    $this->validate([
        'name'          => 'required',
        'email'         => 'required', 
        'date_of_join'  => 'required',        
    ]);       

    $store = [
        'name'          => ucwords(strtolower($this->name)),
        'email'         => $this->email, 
        'date_of_join'  => date("Y-m-d", strtotime($this->date_of_join))
    ];
    
    User::create($store);
}

内容的提问来源于stack exchange,提问作者user12931578

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:45:04