当前位置: 首页 > 知识库问答 >
问题:

如何“计数”查询结果并将其作为JSON格式的数组发送?

秦信瑞
2023-03-14

我想去

>

我确信这方面的最佳做法是什么。

  • 我初始化$count=0
  • 每次循环执行时递增1$count=$count 1
  • 将结果发送到阵列“count”=
public function index()
{
    $distributors = [];
    $count = 0;

    foreach( 

        // Specific Distributors 
        Distributor::where('type','!=','OEM')->where('type','!=','MKP')
        ->get() as $distributor){

        // Variables
        $count = $count + 1; 
        $user = $distributor->user()->first();

        $distributors[$distributor->id] = [

        'user' => $user->toArray(),
        'distributor' => $distributor->toArray(),
        'hq_country' => $distributor->country()->first(),
        'address' => $distributor->addresses()
        ->where('type','=','Hq')->first()->toArray(),

        'count' => $count->toArray()

        ];
    }

    return Response::json($distributors);
}

代码不会运行,由于我的$分发器数组不存在...

如果我使用“count”,它将运行=

  • 我正在使用Laravel 4.0

共有3个答案

邬弘化
2023-03-14

对不起,我可能错了。

我不是laravel专家。

但是这个片段是关于什么的呢?

此索引函数是模型的一部分?

@evoque2015正在尝试将一些自定义数组放入$发行商[$发行商-

如果这是你的目标,你能用任何简单的“count”值做任何测试吗?

我的猜测是:“count”索引对于您的分发服务器::where函数是不可接受的

(如果可以接受-显示为“count”的值,即使返回错误的结果/数据也不会破坏代码)。

因此,我会尝试将此参数的名称更改为“my_custom_count”,是否应该在分发服务器模型声明中的某个位置声明它?

发现:在加载时向Laravel/Elount模型添加自定义属性?

这似乎证明了我的猜测。

因此,我们需要更改模型类,如:

class Distributor extends Eloquent {

    protected $table = 'distributors';//or any you have already

    public function toArray()
    {
        $array = parent::toArray();
        $array['count'] = $this->count;
        return $array;
    }

.....
}

并且可能会对模型进行更多更改,或者只是在表中添加“count”列:-)

长孙深
2023-03-14

型号:

class Distributor extends Eloquent {
    public function country()
    {
        return $this->hasOne('Country');
    }

    public function addresses()
    {
        return $this->hasMany('Address');
    }

    public function hqAddress()
    {
        return $this->addresses()->where('type', 'Hq')->first();
    }

    public function user()
    {
        return $this->hasOne('User');
    }
}

控制器:

$distributors = Distributor::whereNotIn('type', ['OEM', 'MKP'])
    ->with('country', 'user')->get();

$count = 0;
$distributors->each(function(Distributor $distributor) use(&$count) {
    $distributor->count = $count;
    $count++;
});

return Response::json($distributors);
屠坚壁
2023-03-14

将这种计数添加到结果中真的没有多大意义。只发送结果并让客户机进行计数要简单得多。因为关于你实际拥有多少分销商的信息就在你的分销商列表中。只是它的长度。

这里有一个javascript的例子(和$. ajax,尽管这并不重要)

$.ajax({
    url: 'get/distributors',
    method: 'GET'
}).done(function(data){
    var count = data.length;
});
 类似资料:
  • 这可以在单个sql查询中完成吗?或者我必须在循环中对每个房间进行查询吗?还是在一次查询中转储整个数据集,然后在pyhton中处理它更有效率?这是一个很小的数据集,但我有兴趣知道哪一个是最有效的方法。 先谢谢你,马丁 下面是我的表结构:

  • 问题内容: 我正在处理ETL,并且在SSIS包中的SQL任务中具有以下sql代码。这就是我编码的方式。我正在从表中选择数据,并将该查询的结果作为文件。我希望此附件以CSV格式发送。我该怎么做? 任何帮助将不胜感激。提前致谢。 问题答案: 添加应该可以解决问题。 添加可能会稍微清除结果。所有的论点都可以在这里找到

  • 我应该用什么来替换'code TO VERIFY IF QUERY RESULT ROW IS=1'? 我用num_rows尝试了很多种方法,但都行不通。 我的PHP代码:

  • 在此终结点中,有一个以N-三元组格式获取查询结果的选项。我想在连接到endpoint时对rdf4j库做同样的事情,并将结果保存在ntriples格式文件中。 到目前为止,我使用了一个图形查询(CONSTRUCT): 不幸的是,我得到:[畸形查询结果从服务器](预期'.',发现'-')。在endpoint中,结果返回正常(Ntriples格式)。这可能是rdf4j的bug吗?

  • 哪种方法是以CSV格式导出JPA查询结果的最佳方法?我试过opencsv,但它需要一个java.sql.ResultSet对象,我不明白如何创建它。我尝试了以下代码 但我收到异常java.lang.ClassCastException:java.util.Vector不能强制转换为java.sql.ResultSet