当前位置: 首页 > 知识库问答 >
问题:

如何在laravel模型中设置附加变量on条件?

锺高翰
2023-03-14

我在Laravel做项目。我有名为'User.php'的模型,在这里我想设置$追加变量取决于条件。在数据库中,我以键属性格式存储值。

>

其他名为“user_attributes_master”的表,其中包含“头像”、“主题”等列。

和其他名为user_attribute_values的表,其中包含id、user_id和att_id等列(user_attributes_master表的主键)

user.php看起来像

class User extends Authenticatable
{
protected $appends = ['avatar_photo'];

public function profile_attributes()
    {
        return $this->belongsToMany(\App\Models\Access\User\UserProfileAttributes::class,config('access.user_attribute_values_table'),'user_id','user_attribute_id')->withPivot('value', 'active')->withTimestamps();
    }

/**
     * @return string
     */
    public function getAvatarPhotoAttribute()
    {
        $avatar = $this->profile_attributes()->where('user_attributes_master.id',7)->first()->avatar_path;
        return $avatar;

    }
}

在这里,我得到avatar_path属性的每个记录,这是追加变量,我已经设置profile.php模型。如何得到这只'阿凡达'profile.php.如何设置这个追加变量。

属性模型conatins代码,

protected $appends = ['avatar_path','theme_path'];

public function getAvatarPathAttribute()
    {
            return $this->pivot->value != null ? config('app.url').'/'.config('profile.images.user_images'). "/" . $this->pivot->user_id ."/" . config("profile.images.avatar")."/".$this->pivot->value : '';

    }

这里我不希望每个属性都有“阿凡达路径”。

共有2个答案

慕金林
2023-03-14

重命名:protected$appends=['avatar_photo']

收件人:'protected$appends=['avatarphoto'];'

何雅惠
2023-03-14

您可以使用appends()$appends动态添加属性。试试这个:

$attributes->where('pivot.value', '!=', null)->each->appends('avatar_path');
 类似资料:
  • 问题内容: 我正在阅读Laravel Blade 文档,但无法弄清楚如何在模板内分配变量以供以后使用。我不能这样做,因为那会回显“任何内容”,而我不希望那样。 我知道我可以做到,但这并不优雅。 在Blade模板中是否有更好,更优雅的方法来做到这一点? 问题答案: 不建议在视图中进行操作,因此没有刀片标签。如果您确实想在刀片视图中执行此操作,则可以在编写时打开一个php标签,也可以注册一个新的刀片标

  • 我想在Laravel模型中分配一个默认值,但该值应该来自配置文件。 我写下面的代码,但它给我的错误 它向我显示了一个错误,比如常量表达式包含无效操作 如何从配置文件中获取值并在Laravel模型文件中设置$attribute变量?

  • 问题内容: 说我有一个模板 在测试时,定义变量的值而不接触调用此模板的python代码将很有用。所以我正在寻找这样的东西 Django中是否存在类似的内容? 问题答案: 你可以使用模板标签。

  • 问题内容: 我需要在python脚本中设置一些环境变量,并且我希望从python调用的所有其他脚本(shell脚本)(将是子进程)来查看设置的环境变量。该值为数字。 如果这样做,它会抱怨说1必须是字符串。我也想知道一旦设置它,如何在python(在脚本的后半部分)中读取环境变量。 问题答案: 你可能需要考虑其他方面的代码健壮性; 当你将整数值的变量存储为环境变量时,请尝试 然后为了进行检索,请考虑

  • 问题内容: 如何从内部设置一些环境变量以与类似命令一起使用? 这是我目前所拥有的: 我想在启动脚本中设置环境变量(例如),同时仍然能够仅通过一个命令来启动应用程序。 问题答案: 在脚本命令中设置环境变量: 然后在您的应用中使用。 注意:确保它可以跨平台工作。如果只关心Mac / Linux,则可以忽略它。

  • 问题内容: 我已经开始在Django项目中工作,我想设置一些环境变量,而不必手动设置它们或将bash文件作为源。 我想设置以下变量: 我已经读过这篇文章,但这并不能解决我想要的问题。另外,我尝试在Preferences- > Build,Execution,Deployment- > Console- > Python Console / Django Console中设置环境变量,但是它设置了解