我正在尝试使用laravel包。我创建了MyVendor / MyPackage
路由,控制器,过滤器已经在运行。这是我的包的类图:
"classmap": [
"src/migrations",
"src/controllers",
"src/seeds",
"src/models"
],
这就是我的模型:
namespace MyVendor\MyPackage\Models;
class MyModel extends \Illuminate\Database\Eloquent\Model {
}
这是我的控制器里面的代码,它位于命名空间MyVendor \ MyPackage中。
$test = new models\MyModel;
我收到此错误: 未找到“MyVendor \ MyPackage \ models \ MyModel”类
我无法弄清楚原因。我是命名空间的新手,所以也许它与此有关。 我尝试使用composer update,composer dump-autoload(在我的包中)并且仍然无法找到我的模型。
如果我使用get_declared_classes()获取声明的类,我无法在那里看到我的模型。
问题是我的模型clases不是自动加载。
答案 0 :(得分:7)
试试这个:
models
目录并将其添加到包的类映射使用以下内容添加模型YourModel.php
:
<?php
// Note no namespace
use \Illuminate\Database\Eloquent\Model as Eloquent;
class YourModel extends Eloquent {
//
}
composer dump-autoload
,然后再运行根目录通过将其放在routes.php文件的顶部来测试您的模型:
<?php
$testModel = YourModel::get();
die(var_dump($testModel));
?>
答案 1 :(得分:0)
这些适用于Laravel 4.2
<?php namespace Vendor\Package;
use \Illuminate\Database\Eloquent\Model as Eloquent;
class Product extends Eloquent {
...
}