标签:laravel-5-4 laravel laravel-5 eloquent php
是否可以从表中返回所有列,但是如果字符串(值)包含特定单词,请删除该单词?
例如,我有一个这样的表:
------------------------------------------------- | id | article_desc | article_link | active | |----|------------------|----------------|--------| | 1 | Hello, world! | http://test.co | 0 | | 2 | ReplaceWord Test | http://null.org| 1 | -------------------------------------------------
“ ReplaceWord”应替换为“”(无).因此,ID 2的article_desc应该返回“ Test”.
有没有办法在Laravel(Eloquent)中做到这一点而无需使用foreach或其他工具?有内置功能吗?
这是我从中获取此数据的控制器.
返回Article :: where(‘active’,1)-> orderBy(‘create_date’,’desc’)-> get();
谢谢!
解决方法:
雄辩的查询返回Laravel集合,因此您可以使用map
函数遍历结果并替换字符串.
return Article::where('active', 1)
->orderBy('create_date', 'desc')
->get()
->map(function ($article) {
$article->article_desc = str_replace('ReplaceWord', '', $article->article_desc);
return $article;
});
如果希望为每个查询替换该值,则可以在“文章”模型上为此字段创建an accessor.
public function getArticleDescAttribute($value)
{
return str_replace('ReplaceWord', '', $value)
}
标签:laravel-5-4,laravel,laravel-5,eloquent,php 来源: https://codeday.me/bug/20191025/1931552.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。