Php Laravel-更改#appends数组内部的对象属性字段

Php Laravel-更改#appends数组内部的对象属性字段,php,laravel,Php,Laravel,我正在尝试更改作为json响应从函数返回的对象的属性。我并没有试图保存它并将其持久化到DB,只是在将其作为api响应发送之前对其进行更改。这是我要做的一段代码: if ($item->post_title == '') { $post = $this->findPostId($item); $item->post_title = $post->post_title; $item->url = $post->guid; $

我正在尝试更改作为json响应从函数返回的对象的属性。我并没有试图保存它并将其持久化到DB,只是在将其作为api响应发送之前对其进行更改。这是我要做的一段代码:

if ($item->post_title == '') {
     $post = $this->findPostId($item);
     $item->post_title = $post->post_title;
     $item->url = $post->guid;
     $item->slug = $post->slug;
     $item->setAttribute('post_id', $post->ID);
} 
我不明白的是,为什么我可以更改
post\u title
属性并设置属性
post\u id
,但不能更改
url
slug
属性。我已经检查了
post->guid
post->slug
属性,我得到了这两个属性的值,但是
对象属性没有改变

更新


刚刚意识到
slug
字段位于模型的
#appends
数组中,而不是
#attributes
数组中。是否有办法更改给定对象的字段?

添加可填充的字段:

protected $fillable = ['url', 'slug']
然后你可以做:

$item->update(["post_title" => $post->post_title,
               "url" => $post->guid
               // etc...
]);
或者这样:

$item->post_title = $post->post_title;
$item->url = $post->guis;
$item->save();

有可能它们是受保护的属性吗?我没有在laravel中设置任何东西,但我从WP数据库获取数据,并且在使用
dd($item)
期待对象时,我发现它有#受保护的:数组:1[0=>“*”]你能发布你的所有模型属性吗?我已经更新了我的问题,我没有试图将其保存到DB中,我只是想在将其作为响应发送之前对其进行更改