[英]Laravel 5.3 $appends not working
下面是模型的代码
<?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不在那里我得到错误。
我做错了什么吗?
只有在将对象序列化为array / JSON时,才会附加添加到$ appends数组的字段。 否则,在真正需要之前定义此属性是没有意义的 - 这就是您在访问$ product-> desc时获取值的原因。 这样做是为了节省不必要的操作 - 计算自定义属性的值可能涉及一些繁重的操作,并且会延迟到真正需要的时候。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.