zoukankan      html  css  js  c++  java
  • TP5.0使用助手函数model出现commonModel类不存在

        在ThinkPHP5.0中有一个助手助手函数model(),可以实例化具体的模型,包括分层模型,只要传入类名(第一个参数),分层名(第二个参数)。这个函数其实是ThinkPHP框架Loader中的一个静态方法,可以打开"thinkphplibrary hinkLoader"的380行左右查看,参数和实现方法可以自行查看。

    问题

        在本地也就是windows环境下,我通过使用model实例自定义的模型类正常调用方法,放到服务器上(linux),发现模型类找不到,出现类似“类不存在:appcommonModelArticleVote”。所以就去找Loader中的model方法,因为使用了model肯定是先去调用里面的静态函数,然后根据传入的参数实例化返回,有点像工厂模式。

    思路

    1. 检查使用model函数中,传入的模型名和分层名是否都存在,也就是在application项目里有没有对应的模型分层名字的文件夹。

    2. thinphp5.0中项目文件夹需要是小写开头,比如model,controller。

    3. 注意定义的模型类的命名空间,是否存在大小写混乱。

    4. 出现"commonModelArticleVote",注意"common"就是Loader中model方法走了else代码块。

    解决

        发现了是为什么有一个"common"是因为定义的类实例化的时候未找到,那就是在model()使用时传入的参数有错,要么就是定义的模型类的命令空间有误。可以在Loader的静态方法中打断点查看在实例类时的命名空间分别是什么,然后使用class_exists函数查看是否存在,再认真看一些命名空间。最后发现果然是在model助手函数中传入第二个参数(分层名)和模型类的命名空间没有保持一致,一个大写,一个小写。

  • 相关阅读:
    POJ 1328 Radar Installation
    POJ 1700 Crossing River
    POJ 1700 Crossing River
    poj 3253 Fence Repair (贪心,优先队列)
    poj 3253 Fence Repair (贪心,优先队列)
    poj 3069 Saruman's Army(贪心)
    poj 3069 Saruman's Army(贪心)
    Redis 笔记与总结2 String 类型和 Hash 类型
    数据分析方法有哪些_数据分析方法
    数据分析方法有哪些_数据分析方法
  • 原文地址:https://www.cnblogs.com/zerofc/p/11556200.html
Copyright © 2011-2022 走看看