我正在构建一个纤薄的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();
答案 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()方法获取查询结果数组。