gpt4 book ai didi

php - Laravel 将两个模型加入用户模型

转载 作者:行者123 更新时间:2023-11-29 02:58:10 27 4
gpt4 key购买 nike

我有以下表格:

用户游戏字符

用户一次将拥有一个事件游戏,并且从该游戏中将拥有一个事件角色。

我想在我的身份验证表上执行以下 joi:

SELECT * FROM users 
LEFT OUTER JOIN games ON games.ID = users.active_gameid
LEFT OUTER JOIN characters ON characters.ID = games.active_charid

尽量忽略 SELECT * 部分。

我想在页面加载后立即在我的 Auth 表上执行这些连接,所以我一直在使用我的用户模型来执行以下操作:

class User extends Eloquent implements UserInterface, RemindableInterface {    public function game() {        return $this->hasOne('game', 'ID', 'active_gameid');    }}class game extends Eloquent {    protected $table = "games";    public function character() {        return $this->hasOne('character', 'ID', 'active_charid');    }}class character extends Eloquent {    protected $table = "characters";}

以上内容不起作用,因为输出以下内容只会返回 NULL 值:

var_dump(Auth::user()->game->character);

我已尝试进行明显的检查,例如确保数据在表中等等,一切看起来都很好。

有没有人对我哪里出错有帮助?

谢谢!

最佳答案

你的关系是错误的:

// User model
public function game()
{
return $this->belongsTo('Game', 'active_gameid', 'ID');
}

// Game model
public function character()
{
return $this->belongsTo('Character', 'active_charid', 'ID');
}

显然它不会调用您的查询,而是调用 2 个单独的查询:

Auth::user()
->game // SELECT * FROM games WHERE ID = ?
->character; // SELECT * FROM characters WHERE ID = ?

关于php - Laravel 将两个模型加入用户模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27901482/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com