如何从 Laravel 中的响应 JSON 中删除 HTML 标签 [关闭]
Posted
技术标签:
【中文标题】如何从 Laravel 中的响应 JSON 中删除 HTML 标签 [关闭]【英文标题】:How to remove HTML tags from response JSON in Laravel [closed] 【发布时间】:2021-02-22 12:50:42 【问题描述】:我正在从事 Laravel rest api 项目项目,遇到了一个问题。我希望我的 ApiController.php 上的函数为我带来 json 对象并删除 html 标签。所以我尝试了这种方法,How to remove html tags form response json laravel
class ApiControllerextends Controller
//
public function get()
$post = Post::select('post_title','post_content','category_id')
->orderBy('created_at','desc')
->with('category')
->get();
$categories=Category::all();
return response()->json($post, 200, [], JSON_UNESCAPED_UNICODE);
我得到的结果
Api Result
[
"post_title": "post title 1",
"post_content": "<p>content</p> my content " is :<\/p>\r\n\r\n<p>- content</p>",
"category_id": "1",
"category":
"id": 1,
"name": "category1",
,
]
那么如何得到我想要显示的结果
Api Result
[
"post_title": "post title 1",
"post_content": "content my content is content",
"category_id": "1",
"category":
"id": 1,
"name": "category1",
,
]
【问题讨论】:
您似乎没有真正尝试解决这个问题。编造方法 (response()->strip_tags()
???) 不是真诚地努力做好自己的工作。
@miken32 我花了五天多的时间试图找到解决方案,因为我正在通过 laravel 框架,欢迎您的帮助
检查我改进的答案应该可以工作
【参考方案1】:
你应该使用
public function get()
$post = Post::select('post_title','post_content','category_id')
->orderBy('created_at','desc')
->with('category')
->get();
$categories=Category::all();
foreach ($post as $item)
$post->post_content=strip_tags($post->post_content);
return response()->json($post, 200, [], JSON_UNESCAPED_UNICODE);
【讨论】:
感谢@Evol Rof 先生的回复,我在尝试此方法时收到此错误代码异常:此集合实例上不存在属性 [post_content]。在第 837 行的文件 C:\laravelproject\vendor\laravel\framework\src\Illuminate\Support\Traits\EnumeratesValues.php 中 @Evol Rof 先生,它工作得很好,非常感谢你的帮助,你是最好的,我刚刚添加了 html_entity_decode foreach ($post as $item) $item->post_content=strip_tags( html_entity_decode($item->post_content));以上是关于如何从 Laravel 中的响应 JSON 中删除 HTML 标签 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何从 laravel 刀片中的 json 数据创建分页链接
如何在 PHPUnit 中控制台/检查 Laravel 资源的 JSON 响应?
如何使用 Guzzle 和 Laravel 从 JSON 响应中提取单个数组值