gpt4 book ai didi

php - Laravel 5.3 $appends 不工作

转载 作者:搜寻专家 更新时间:2023-10-31 21:24:09 24 4
gpt4 key购买 nike

模型代码如下

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
protected $appends = [
"desc"
];

protected $fillable = ['id'];

public function getDescAttribute()
{
return strip_tags( $this->attributes['description'] );
}
}

所以现在当我这样做的时候

$product = Product::first();

它不返回 $product 中的 desc 字段,虽然当我执行 $product->desc 时它返回结果,但我希望将该结果附加到模型本身。

下面的代码给我报错

$product = Product::first()->get(['desc']);

运行

Select desc from products...

但是由于 desc 不存在,我得到了错误。

我做错了什么吗?

最佳答案

您添加到 $appends 数组的字段仅在对象被序列化为数组/JSON 时附加。否则,在真正需要它之前定义该属性是没有意义的 - 这就是为什么您在访问 $product->desc 时获得该值的原因。这样做是为了节省不必要的操作 - 计算自定义属性的值可能涉及一些繁重的操作,并且会延迟到真正需要的时候。

关于php - Laravel 5.3 $appends 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39971614/

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