我有两个Mysql表,一个是比赛,另一个是投注。我将match_id作为betsettings表中的外键。现在我如何获取每个match_name的投注设置信息?我想在每个比赛名称下显示所有比赛的所有投注信息。我正在使用laravel
匹配表:
Schema::create('matches', function (Blueprint $table) {
$table->increments('id');
$table->string('match_name');
$table->timestamps();
});
投注表:
Schema::create('betsettings', function (Blueprint $table) {
$table->increments('id');
$table->integer('match_id')->unsigned();
$table->dateTime('close_time');
$table->string('status')->default('active');
$table->timestamps();
});
Schema::table('betsettings', function( $table) {
$table->foreign('match_id')
->references('id')
->on('matches')
->onDelete('cascade')
->onUpdate('cascade');
});
答案 0 :(得分:1)
您可能想看看雄辩的关系,以便更好地了解laravel如何处理这种关系
我假设您为每个表都有模型,让我们使用模型定义这些表之间的关系。
在匹配模型中
public function betsettings(){
return $this->hasOne(BetSetting:class);
}
在BetSetting模型中
public function match(){
return $this->belongsTo(Match:class);
}
现在,您可以使用热切加载获取每场比赛的投注设置。这是一个例子
$match = Match::with("betsettings")->find($id);
$match->betsettings // gives you related bet settings