无法访问Eloquent中的静态方法(在Laravel外部使用)

时间:2016-09-18 19:25:20

标签: php methods orm static eloquent

我遵循了Jeffrey Way的解释以及其他一些博客文章和文章,但仍无法使其发挥作用。

我想在Laravel之外使用Eloquent ORM。我已将要求纳入composer.json

"illuminate/database": "v5.*",
"illuminate/events": "v5.*",

然后我实例化了Capsule Manager:

$db = new Illuminate\Database\Capsule\Manager();
$db->addConnection($config['database']);
$db->setEventDispatcher(new Illuminate\Events\Dispatcher(new Illuminate\Container\Container));
$db->setAsGlobal();
$db->bootEloquent();

我已经构建了一个扩展Eloquent模型的基本用户模型:

use Illuminate\Database\Eloquent\Model as Eloquent;

class User extends Eloquent
{
    public $incrementing = false;
    protected $primaryKey = 'username';
    protected $keyType = 'string';
}

现在我可以按预期创建一个新用户:

$u = new User([
    'username' => $username,
    'fullname' => $fullname,
    'role_id'  => $role_id,
]);
$u->save();

这就像魅力一样,用户可以在预期的users表中显示,但我无法通过任何这些方法检索用户,我的回复始终为null

$user = User::find('foo'); // no dice
$user = User::where('username', 'foo')->get(); // nope
$user = User::first(); // nothing

有谁知道为什么我不能使用Eloquent模型附带的静态方法?或者更好的是,如何解决这个问题?

0 个答案:

没有答案