dream2891 2016-09-22 17:04
浏览 91

Laravel:将字符串设置为模型的名称

I´m working with polymorphic in Laravel 5.2. I want to set for the name of model string. There si code:

switch ($passport->element_type) {
            case 'Window':      
                $windows = Window::find($passport->element_id);
                break;
            case 'Floor':    
                $floor = Floor::find($passport->element_id);                    
                break;
            case 'Wall':
                $wall = Wall::find($passport->element_id);
            default:
                break;
        }
    };

You can see that variable "$passport->element_type" gives me the name of my model. I don´t want to do it with switch-case. Is it possible to do something like:

$passport->element_type::find($passport->element_id);

or how can I use the variable (element_type) as the name for model?

  • 写回答

3条回答 默认 最新

  • duanao3204 2016-09-22 17:08
    关注

    Have you tried it?

    If

    $passport->element_type::find($passport->element_id);
    

    doesn't work, I know that

    $type = new $passport->element_type;
    $type::find($passport->element_id);
    

    will.

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题