当前位置:  开发笔记 > 前端 > 正文

添加项目到查询结果 - Laravel

如何解决《添加项目到查询结果-Laravel》经验,为你挑选了1个好方法。



1> Marcin Nabia..:

你可以这样做

//获取您的数据(您的部分代码)

$posts = DB::table('blog_posts')
-where(['post_type' => 1, 'post_status' => 1])
->orderBy('id', 'desc')
->take(5)->get();

//添加 post_seo

foreach ($posts as $post) {
   $post->post_seo = seoUrl($post->post_title);
}

//设置结果数组

$data['data'] = $posts;
$data['success'] = true;

//回应

$response = response()->json($data);

//或者如果您想要返回它

return response()->json($data);

编辑

使用时,你也可以做得更好一些Eloquent.如果你有这样的模型(你需要添加有效的命名空间和use语句)

class BlogModel extends Model 
{
   protected $table = 'blog_posts';
   protected $appends = ['post_seo'];

   public function getPostSeoAttribute($value)
   {
       return seoUrl($this->post_title);
   } 
}

(添加post_seo属性的访问器并post_seo在转换为数组时添加到结果中)

你现在可以做(比前面的例子更短的语法):

//获取您的数据

$posts = BlogPost::where('post_type',1)
->where('post_status',1)
->orderBy('id', 'desc')
->take(5)->get();

//回应

$response = response()->json(['data' => $posts, 'success' => true]);

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有