Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 将项目添加到查询结果-Laravel_Json_Laravel_Laravel 5_Eloquent_Query Builder - Fatal编程技术网

Json 将项目添加到查询结果-Laravel

Json 将项目添加到查询结果-Laravel,json,laravel,laravel-5,eloquent,query-builder,Json,Laravel,Laravel 5,Eloquent,Query Builder,我正在慢慢地将我的API迁移到Laravel,并着手解决这个问题 我正在努力做到这一点: $data = array(); $query = "SELECT * FROM blog_posts WHERE post_type = 3 AND post_status = 1 ORDER BY id DESC"; $result = mysqli_query($cms_connection, $query); if($result) { while($row = mysqli_fetch

我正在慢慢地将我的API迁移到Laravel,并着手解决这个问题

我正在努力做到这一点:

$data = array();

$query = "SELECT * FROM blog_posts WHERE post_type = 3 AND post_status = 1  ORDER BY id DESC";
$result = mysqli_query($cms_connection, $query);
if($result) {
    while($row = mysqli_fetch_assoc($result)) {
        $row['post_seo'] = seoUrl($row['post_title']);
        $data['data'][] = $row;
    }
    $data['success'] = true;
    $response = json_encode($data);
}
我的问题不一定是获取查询,但正如您所看到的,我使用的是查询结果,然后将其注入到最终的
数组中

因此,本质上,我正在获取行,转换一些获取的属性,然后将新创建的属性注入到结果数组中

这就是我到目前为止所做的:

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

你可以这样做

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

//添加
post\u seo

foreach ($posts as $post) {
   $post->post_seo = seoUrl($post->post_title);
}
//集合结果数组

$data['data'] = $posts;
$data['success'] = true;
//回应

$response = response()->json($data);
$response = response()->json(['data' => $posts, 'success' => true]);
//或者如果你想把它退回

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

您还可以使用。如果您有这样的模型(您需要添加有效的名称空间并
使用
语句)

(将访问者添加到
post\u seo
属性,并在转换为数组时将
post\u seo
添加到结果)

您现在可以执行以下操作(比上一个示例中的语法更短):

//获取您的数据

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

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

哦,哇,我和拉威尔共事了几年,我完全没有意识到,
$appends
的存在。谢谢这将是非常有用的。@JoelHinz很高兴我能学到一些东西:)我也一直在学习并发现新的Laravel功能:)还有一个用于编辑部分!