doushouhe7072 2013-05-30 04:48
浏览 14

Laravel 3:$ object_name - > $ variable_field ......有可能吗?

I have a table with 10 fields with these names: field1, field2, and so on... I want to retrieve a single registrer (wtih eloquent and ->first() ). And when i have the object (lets say $user), can I do something like this in the controller?

for ($i=1; $i<=10; $i++) {
    $field_name = 'field'.$i;
    if ($user->$field_name == 1) {
        // do something
    }
}

Or i have to call them manually?

    if ($user->field1 == 1) {
        // do something
    }
    if ($user->field2 == 1) {
        // do something
    }
    ....
  • 写回答

1条回答 默认 最新

  • douzheng9221 2013-05-30 05:04
    关注

    As @vstm said, it's possible, here are two working examples of what you can do:

    foreach($data as $key => $row) {
        $r[$row->$id] = ($abbreviation ? $row->$abbreviation.' - ' : ''). ($method ? $row->$name() : $row->$name);
    }
    

    and

    if(isset($line['childs'])) 
    {
        $childs = $model->$line['childs']()->get(['id'])->toArray();
    
        if(count($childs))
        {
            foreach($childs as $value)
            {
                $selected[] = $value['id'];
            }
        }
        else
        {
            $selected = null;                       
        }
    
    
        $line['selected'] = $selected;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入