当前位置: 首页 > 面试题库 >

两个外键,如何用laravel雄辩地映射

冯澄邈
2023-03-14
问题内容

我在MySQL中有两个表,其中第一个表称为用户,第二个表称为游戏。表结构如下。

使用者

  • id(主要)
  • 电子邮件
  • 密码
  • 真正的名字

游戏

  • id(主要)
  • user_one_id(外国)
  • user_one_score
  • user_two_id(外国)
  • user_two_score

我的游戏桌在两个用户之间建立了两个外交关系。

我的问题是如何为该表结构建立模型关系?-根据laravel文档,我应该在模型内部创建一个函数并将其与关系绑定

例如

public function users()
{
    $this->belongsTo('game');
}

但是我似乎在文档中找不到任何内容来告诉我如何处理两个外键。就像我上面的表格结构一样。

希望您能在这里为我提供帮助。

谢谢


问题答案:

迁移:

$table->integer('player1')->unsigned();
$table->foreign('player1')->references('id')->on('users')->onDelete('cascade');
$table->integer('player2')->unsigned();
$table->foreign('player2')->references('id')->on('users')->onDelete('cascade');

和一个模型:

public function player1()
{
    $this->belongsTo('Game', 'player1');
}
public function player2()
{
    $this->belongsTo('Game', 'player2');
}

EDIT 根据用户deczo的建议将“游戏”更改为“游戏”。



 类似资料:
  • 在Laravel 5.1中,我可以看到表列关系可以通过两种方式设置: 1) 在迁移表中定义外键。 2)定义模型中的雄辩关系。 我已经阅读了文件,我仍然对以下内容感到困惑: > 我是需要同时使用这两个还是只需要1个? 两者同时使用有错吗?还是让它变得多余或者引起冲突? 使用有说服力的关系而不在迁移列中提及外键有什么好处? 有什么区别? 这些是我现在掌握的密码。我仍然不清楚是否需要删除迁移文件中设置的

  • 我有一个表:配置文件表有一个外键和主键。我想更新行基于两个条件。id==1和user=='admin' 如何使用两个参数更新查询使用雄辩。

  • 我一直试图找出一种方法来记录SQL查询从雄辩的ORM,我在Zend框架1中使用。我遇到了这样调用的getQueryLog()方法: 我发现Illumb\Database\Connection包含getQueryLog()方法,因此我尝试执行以下操作: 但是,我得到以下通知,它返回NULL: 有人能建议我在拉威尔以外的地方怎么用这个吗?我在网上搜索过,看不到任何需要改变的地方,尽管我怀疑大多数例子都

  • 我有一个问题表和一个标签表。我想从给定问题的标签中获取所有问题。例如,我可能会在给定的问题上附加“旅行”、“火车”和“文化”的标签。我希望能够获取这三个标签的所有问题。看起来很棘手的是,问题和标签关系在《雄辩》中被定义为归属的多对多关系。 我想尝试合并以下问题集合: 但它似乎不起作用。似乎没有合并任何内容。我这样做对吗?此外,是否有更好的方法以雄辩的方式获取多对多关系中的一行行?

  • 我有一个具有以下列的模型: blog_id(fillabale) 日期(可填充) 柜台 日期blog_id唯一钥匙 每当我试图从这个表中获取结果时,例如, 或 我得到一个错误: 列blog_counter.id不存在 我试图覆盖primaryKey并将其设置为null/['blog\u id',date']/'blog\u id,date',以上任何一项都无法解决试图通过id获取原始数据的问题。。

  • 我有两张表格,详细内容如下: 电子表格 id 鼻涕虫 标题 徽标 说明 价格 地位 流量表 id 电子课程id 日期 金额 类型\交通 我想用Elount laravel显示每天流量的ecourse数据。解决办法是什么? 非常感谢。