我正在浏览一个使用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中进行查询 所以,如果有人能解释我的工作方式,我会非常感激!
答案 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)
刚才意识到,由于我正在研究遗留代码,因此我没有最新版本的软件包,修复了这个问题。