gpt4 book ai didi

laravel - 在 Eloquent 中使用带有数据透视表字段的访问器

转载 作者:行者123 更新时间:2023-12-03 20:42:23 25 4
gpt4 key购买 nike

我目前有一些模型,它们通过 laravel 具有多对多的关系。这是结构:

users
id
username
...

games
id
title
...

game_user
game_id
user_id
system

现在,我的模型看起来有点像这样:
<?php

class Game extends Eloquent
{
/**
* A game is owned by many users
*
* @return mixed
*/
public function user()
{
return $this->belongsToMany('User')->withPivot('system');
}


<?php

class User extends Eloquent
{
/**
* A user has many games.
*
* @return mixed
*/
public function games()
{
return $this->belongsToMany('Game')->withPivot('system');
}

现在,这一切正常。但是,我希望对数据透视表中的系统字段使用修改器。我找不到关于此的任何文档,以下(在用户和游戏模型中)不起作用:
public function getSystemAttribute($val)
{
return $val.' Testing';
}

最佳答案

我还没有测试过,但这应该有效。

public function getSystemAttribute($value)
{
return $this->pivot->system . ' Testing';
}

...

foreach ($user->games as $game)
{
echo $game->system;
}

传入的值是从模型属性中提取的。没有系统属性,所以你应该得到 NULL。我们可以忽略它并直接从数据透视表中提取值。

关于laravel - 在 Eloquent 中使用带有数据透视表字段的访问器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17196127/

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