Как получить доступ к базе данных с помощью БД Фасады? - PullRequest
0 голосов
/ 04 марта 2019

За документацию мы можем сделать что-то подобное для запуска необработанного запроса:

use Illuminate\Support\Facades\DB;

DB::select('select * from users where id = :id', ['id' => 1]);

Но я не смог найти в документации способ инициализации eloquent с моей базой данныхчтобы выполнить этот запрос.

Я использую PHP 7.3 (без фреймворков) для работы с eloquent.Где я могу инициализировать базу данных как красноречивую?

Я нашел в документации способы сделать это, используя \Capsule\Manager, как показано в файле readme в этой ссылке, но никак неиспользовать это, чтобы заставить работать Db::select, есть идеи о том, как правильно настроить это?

Возможно, я ищу что-то подобное?

DB::init([
    'driver'    => 'mysql',
    'database'  => 'database',
    'username'  => 'root',
    'password'  => ''
])

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Я нашел другой способ использовать необработанные запросы, используя менеджер капсул напрямую:

use Illuminate\Database\Capsule\Manager as DB;

$capsule = new DB;
$capsule->addConnection([
    'driver' => 'mysql',
    'host' => DB_SERVER,
    'database' => DB_DATABASE,
    'username' => DB_SERVER_USERNAME,
    'password' => DB_SERVER_PASSWORD,
    'charset' => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix' => '',
    ]);
$capsule->setAsGlobal();
$capsule->bootEloquent();

$test = DB::select('select * from products where products_id = :id', ['id' => 19536]);
0 голосов
/ 04 марта 2019

вы написали неверный синтаксис для eloquent

метод выбора предназначен для имени столбца выбора таблицы в настоящее время

$users = DB::table('users')->select('name', 'email as user_email')->where('id',$id)->get();

или используется

db::raw('select * from users where id = :id', ['id' => 1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...