Corcel / Laravel包装概念

时间:2017-06-20 08:44:10

标签: php wordpress laravel

我正在浏览一个使用Corcel包从Wordpress数据库获取数据的项目。我不明白的是,当我通过代码的时候,是一条路线:

Route::get('wp', function () {
    return Corcel\Post::find(106);
});

虽然在Laravel中没有设置Post模型,但我从数据库中获取了数据。 即使我刚刚使用过,我也得到了相同的数据:

return Post::find(106);

所以,我认为使用Corcel包我们可以使用我们想要获取数据的表的模型名称,并且它将在没有首先在Laravel中定义模型的情况下工作,因为这个例子有效。 但是,我已经尝试过查询选项表。像这样:

    Route::get('wp', function () {
        return Corcel\Option::all();
    });

但是,我得到了:

  routes.php第25行中的

FatalThrowableError:类'Corcel \ Option'不是   结果

如果我这样做:

return Corcel\Options::all();

由于这是Corcel包中类的名称,我得到:

  

SQLSTATE [42S02]:找不到基表或视图:1146表   'middleton.options'不存在(SQL:select * from options

所以,然后它尝试在laravel db中而不是在Wordpress db中进行查询 所以,如果有人能解释我的工作方式,我会非常感激!

2 个答案:

答案 0 :(得分:0)

该类称为选项,而不是选项,因此它将是:

Route::get('wp', function () {
    return Corcel\Options::all();
});

方法all()应该从Laravel Eloquent基础Model类的it extends开始工作。无论如何,该类似乎有一个方法getAll(),它应该返回一个更全面的输出(link)。试试这样:

Route::get('wp', function () {
    return Corcel\Options::getAll();
});

希望这会对你有所帮助。

修改:使用遗留代码似乎是version issue

答案 1 :(得分:0)

刚才意识到,由于我正在研究遗留代码,因此我没有最新版本的软件包,修复了这个问题。