素材牛VIP会员
Laravel中使用ORM为什么这个字段映射不到?
 ba***ag  分类:PHP代码  人气:1350  回帖:2  发布于6年前 收藏

写了一个简单的ORM类的搜索,代码如下

打印的返回的Collection类是这样的

映射的报错信息如下

映射代码如下

 标签:lumenyiiphplaravel

讨论这个帖子(2)垃圾回帖将一律封号处理……

Lv5 码农
ah***xr 软件测试工程师 6年前#1

laravel orm get 方法返回的是集合,而且是多维的,我写一个示例,纯手打,理解就行

$goods=Good:where('goods_name','like','%'.$item.'%')->get(['goods_name','goods_sn','market_price']);
$data=[];
if(!$goods->isEmpty()){
    foreach($goods as $good){
        $data[]=[
          'goods_name'=>$good->goods_name,
          'goods_sn'=>$good->goods_sn,
          'market_price'=>$good->market_price,
        ];
    }    
}
dump($data);

还有我不太理解,你这段代码的作用,laravel,在处理返回值的时候,会把集合(集合实现了php数组的标准库),转化为数组,进行返回,不需要额外的转化。还有如果想把集合转化为数组,直接调用 toArray()方法即可。

欢迎进群一起交流学习:630418030

Lv5 码农
wa***ao 移动开发工程师 6年前#2

transform里直接这样就可以了
public function transform(Goods $goods)
{

return $goods->attributesToArray();

}

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取