![](/img/trans.png)
[英]How To Write A Laravel Join Containing A Select Of MySQL User Defined Variables
[英]Write a user defined class in laravel?
我在libraries/myclass.php
有一个类,并且有一个名为myFunction
的函数。 我也尝试使用以下代码在控制器中调用该函数
$myclasobj=new libraries\Myclass();
$returnvalue=$myclasobj->myFunction($para);
未找到该类的结果。 我不希望它作为辅助类并自动加载该类。 我只想作为一个简单的类使用。我正在使用laravel 4.如何获取呢?
更新
感谢大家的大力帮助。
按照@ carousel,@ Ohgodwhy,我为什么要通过命名空间(实际上是在我不知道之前)进行命名。
我在名为mylib
库下创建一个目录,并将我的类( myclass.php
)移至该目录,然后添加namespace mylib;
到myclass.php
的顶部。
然后添加use mylib\\Myclass;
给我的控制器。 最后,我将这些行添加到composer.json
,
"psr-0": {
"mylib": "app/libraries"
},
完成这些之后,我的班级开始上班了。感谢大家的帮助
为了在Laravel中使用,每个新类都必须链接到Application。 可以用一种以上的方法完成:
Through class map
With namespacing
By its path
从这个意义上讲,没有简单的类。 如果使用composer正确引用了所有类,则它们可以成为Laravel Application流的一部分。
更新至我的答案:
这是解释立面的最佳资源的链接 。
假设尚未加载文件,则将libs /目录添加到类加载器的正确方法是修改composer.json以将目录添加到自动加载器。
autoload: {
classmap: [
"...",
"libraries/"
]
}
之后,您将需要重建自动装带器,因此在主目录中,继续并在终端中运行它:
$ php artisan dump-autoload -o
还要确保您的类实际上包含在名称空间中,因为使用
new libraries\myClass();
不从“库”文件夹中加载“ myClass”。 如果可以将其添加到原始问题中,将很有帮助。
尝试这样做,它应该可以解决您的问题:
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
app_path().'/classes', //we added this
));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.