我在Slim框架上使用Eloquent选择数据透视表的行时遇到了一些麻烦。我有以下关系:
tb_bet(id,...)
tb_fixture(id,...)
tb_bet_fixture(bet_id,fixture_id,status)
模型:
Bet.php:
use \Illuminate\Database\Eloquent\Model;
class Bet extends Model {
protected $connection = 'client';
protected $table = 'tb_bet';
public $timestamps = false;
public function fixtures() {
return $this->belongsToMany('Fixture')->withPivot('status');
}
}
Fixture.php:
use \Illuminate\Database\Eloquent\Model;
class Fixture extends Model {
protected $connection = 'client';
protected $table = 'tb_fixture';
public $timestamps = false;
public function bets() {
return $this->belongsToMany('Bet')->withPivot('status');
}
}
我能够查询某一场比赛的所有投注以及所有投注中的所有比赛,但是我真正需要的是这样做:select * from tb_bet_fixture where bet_id = 1
。因此,我有了给定投注的所有比赛状态列表。就像这样:
bet:{
'id': 1,
'pivot': [
{bet_id: 1, fixture_id: 2, status: true},
{bet_id: 1, fixture_id: 3, status: false},
{bet_id: 1, fixture_id: 4, status: true}
]
}
我想使用原始查询,但是每当我尝试在我的控制器上声明
use Illuminate\Database\Capsule\Manager as DB;
并使用$users = DB::select('select * from tb_users');
作为测试时,我会收到一个Database [default] not configured.
错误,并且我不知道如何访问包含当前连接的'$capsule'变量(是的,我使用多个连接到不同的数据库),并且该变量被定义在中间件中。无论如何,我会感激任何帮助。