从数组

时间:2017-05-03 06:00:55

标签: sql arrays laravel

我使用Laravel并且我已经使用此查询来获取记录:

<?php
foreach ($connectionUser as $value) {
    if ($value->sender_profile_id == $profile_id) {
        //$profileID[] = $value->receiver_profile_id;
        $result[] .= $this->select('assets.id', 'assets.profile_id', 'assets.access', 'assets.name', 'assets_data.path', 'assets.processed'
                           ->join('assets_data', 'assets.id', '=', 'assets_data.asset_id')
                           ->where('profile_id', '=', $value->receiver_profile_id)->orderBy('assets.created_at', 'desc')
                           ->get();
    } elseif ($value->receiver_profile_id == $profile_id) {
        //$profileID[] = $value->sender_profile_id;
        $result[] .= $this->select('assets.id', 'assets.profile_id', 'assets.access', 'assets.name', 'assets_data.path', 'assets.processed')
                          ->join('assets_data', 'assets.id', '=', 'assets_data.asset_id')
                          ->where('profile_id', '=', $value->sender_profile_id)
                          ->orderBy('assets.created_at', 'desc')
                          ->get();
    }
}

结果如下(print_r($result)

Array (
    [0] => []
    [1] => [{"id":233,"profile_id":175,"access":"PUB","name":"99","path":"Capture_233.PNG","processed":"0"}]
    [2] => [] 
)

如何获取结果数据?

2 个答案:

答案 0 :(得分:0)

您应该检查查询中的数组结果,并检查是否有结果,然后将其推送到$result

要在完成该代码后获取数据,您可以循环到$result值(它将是另一个数组,如果您想从查询得到一个结果,您可以在->first()上获取第一个数据)。

答案 1 :(得分:0)

从您发布的代码中,我猜您正在尝试从资产表中检索id,profile_id和访问权限。如有疑问,

  

laravel中执行上述查询的任何替代方法?

最好使用雄辩的ORM而不是使用原始查询。您所要做的就是定义模型类中的关系,并将相关模型用作属性。

检查Laravel文档

Getting Started with Eloquent

Eloquent Relationships