Eloquent ORM - 如何编写我自己的查询?

时间:2017-06-19 23:52:11

标签: php frameworks eloquent

我正在构建一个纤薄的API,我正在使用雄辩的ORM。但我希望能够偶尔编写自己的查询(对于非常复杂的查询)。

经过研究,我认为我可以这样做:

$messages = Capsule::statement("select * from messages");

注意:这是一个仅用于测试的简单声明。

但唯一返回的是'true'而不是消息数组。

知道我做错了吗?

我在bootstrap.php中有以下内容

include 'config/creds.php';
include 'vendor/autoload.php';

use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule;
$capsule->addConnection([
    "driver"    => "mysql",
    "host"      => $db_host,
    "database"  => $db_name,
    "username"  => $db_user,
    "password"  => $db_pass,
    "charset"   => "utf8",
    "collation" => "utf8_general_ci",
    "prefix"    => ""
]);

$capsule->bootEloquent();
$capsule->setAsGlobal();

1 个答案:

答案 0 :(得分:1)

根据Eloquent的github repo(https://github.com/illuminate/database)中的文档,Capsule支持所有原始查询方法,它们在Laravel中提供数据库外观。

这里描述了它们:https://laravel.com/docs/5.4/database#running-queries

根据文档Capsule :: statement()方法不符合您的需求。您需要使用Capsule :: select()方法获取查询结果数组。