Php 可以将Laravel立面与独立数据库一起使用吗?
我正在关注这一点,我很好奇是否有可能实现以下目标:Php 可以将Laravel立面与独立数据库一起使用吗?,php,laravel-5,Php,Laravel 5,我正在关注这一点,我很好奇是否有可能实现以下目标: $capsule = new Illuminate\Database\Capsule\Manager; $capsule->addConnection([ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'database', 'username' => 'root', 'passwor
$capsule = new Illuminate\Database\Capsule\Manager;
$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]);
$capsule->setAsGlobal();
$capsule->bootEloquent();
# can Facades be used like this somehow?
var_dump(DB::connection()->getPdo());
var_dump(Hash::make('hash'));
我得到以下错误,这是预期的,因为脚本没有加载任何Facades,但我不确定如何调整工作:
Fatal error: Uncaught Error: Class 'DB' not found
我也尝试了被接受的答案,但仍然没有运气(甚至不确定我是否正确使用了它?)
这给了我以下错误:
Fatal error: Uncaught Error: Call to undefined method Illuminate\Support\Facades\DB::connection()
Fatal error: Uncaught Error: Class 'DB' not found
Fatal error: Uncaught RuntimeException: A facade root has not been set.
向上添加“use DB;”仍然会产生以下错误:
Fatal error: Uncaught Error: Call to undefined method Illuminate\Support\Facades\DB::connection()
Fatal error: Uncaught Error: Class 'DB' not found
Fatal error: Uncaught RuntimeException: A facade root has not been set.
在顶部添加“use Illumb\Support\Facades\DB;”会出现以下错误:
Fatal error: Uncaught Error: Call to undefined method Illuminate\Support\Facades\DB::connection()
Fatal error: Uncaught Error: Class 'DB' not found
Fatal error: Uncaught RuntimeException: A facade root has not been set.
有什么建议吗?还是仅仅因为Facades不能与独立数据库一起使用?经过这么多的胡闹,我终于明白了 composer.json
{
"require": {
"illuminate/database": "^5.7",
"illuminate/hashing": "^5.7"
}
}
bootstrap.php
require 'vendor/autoload.php';
$app = new Illuminate\Container\Container();
Illuminate\Support\Facades\Facade::setFacadeApplication($app);
$app->singleton('db', function () use ($app) {
$capsule = new Illuminate\Database\Capsule\Manager;
$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]);
$capsule->setAsGlobal();
$capsule->bootEloquent();
return $capsule;
});
$app->singleton('hash', function () use ($app) {
return new Illuminate\Hashing\HashManager($app);
});
class_alias(Illuminate\Support\Facades\DB::class, 'DB');
class_alias(Illuminate\Support\Facades\Hash::class, 'Hash');
index.php
require '../bootstrap.php';
var_dump(DB::connection()->getPdo());
var_dump(Hash::make('password'));
# object(PDO)#16 (0) {}
# string(60) "$2y$10$aevTHr94mYoh9PBlJz43EuT2qJLCKkNrOLNpKLhbjGzlqpMS6YVBG"