Car*_*oce 4 packages models laravel laravel-4
我正在尝试使用laravel包.我创建了MyVendor/MyPackage
路由,控制器,过滤器已经在运行.这是我的包的类图:
"classmap": [
"src/migrations",
"src/controllers",
"src/seeds",
"src/models"
],
Run Code Online (Sandbox Code Playgroud)
这就是我的模型:
namespace MyVendor\MyPackage\Models;
class MyModel extends \Illuminate\Database\Eloquent\Model {
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器里面的代码,它位于命名空间MyVendor\MyPackage中.
$test = new models\MyModel;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:找不到类'MyVendor\MyPackage\models\MyModel'
我无法弄清楚为什么.我是命名空间的新手,所以也许它与此有关.我尝试使用composer update,composer dump-autoload(在我的包中)并且仍然无法找到我的模型.
如果我用get_declared_classes()获取声明的类,我无法在那里看到我的模型.
问题是我的模型clases不是自动加载.
小智 7
试试这个:
models在包中创建目录并将其添加到包的类映射中添加YourModel.php具有以下内容的模型:
<?php
// Note no namespace
use \Illuminate\Database\Eloquent\Model as Eloquent;
class YourModel extends Eloquent {
//
}
Run Code Online (Sandbox Code Playgroud)composer dump-autoload首先从您的包目录运行,然后从根目录运行将它放在routes.php文件的顶部来测试你的模型:
<?php
$testModel = YourModel::get();
die(var_dump($testModel));
?>
Run Code Online (Sandbox Code Playgroud)