Laravel报错:Property [table_number]不存在于集合实例
问题原因与解决方法
问题本质
你执行的ManagePublicTable::where('match_id', $id)->get()返回的是Eloquent集合(Collection),它是多条模型记录的集合容器,本身并没有table_numbers属性。只有集合里的单个ManagePublicTable模型实例,才具备这个字段属性,所以直接通过集合访问会报错。
对应解决场景
- 如果匹配的记录只有一条:用
first()替代get(),获取单个模型实例$managePublicTable = ManagePublicTable::where('match_id', $id)->first(); dd($managePublicTable->table_numbers); - 如果有多个匹配记录,需要逐个访问字段:遍历集合处理每个模型
$managePublicTables = ManagePublicTable::where('match_id', $id)->get(); foreach ($managePublicTables as $table) { // 对单个实例的table_numbers进行操作 dd($table->table_numbers); } - 如果需要一次性获取所有记录的table_numbers字段:用
pluck()直接提取$tableNumbers = ManagePublicTable::where('match_id', $id)->pluck('table_numbers'); dd($tableNumbers); // 返回包含所有table_numbers值的集合
内容的提问来源于stack exchange,提问作者Abdullah Al Shahed
相关产品推荐
相关产品推荐

