【问题标题】:Why can I not access the data from my query?为什么我不能从我的查询中访问数据?
【发布时间】:2016-01-12 18:04:00
【问题描述】:
        $threads = Thread::leftjoin('users', 'users.id', '=', 'threads.user_id')
        ->leftjoin('users as poster','poster.id', '=', 'threads.user_id')
        ->leftjoin('forums_threads', 'forums_threads.thread_id','=','threads.id')
        ->leftjoin('threads_users', 'threads_users.thread_id','=','threads.id');

        if($request->search){
            echo 'Search:' . $request->search;
            $threads->where('title', '=', $request->search);
        }

        if($request->author){
            echo 'author:' . $request->author;
            $threads->where('users.id', $request->author);
        }

        if($request->site){
            echo 'site:' . $request->site;
            $threads->where('threads.source', $request->site);
        }

        $threads->groupBy(array('threads.id', 'users.username','threads_users.boosts', 'users.id'))
        ->get(array('threads.*','users.username','threads_users.boosts'));

如果我对其执行 ->count() 操作,我会得到 3 的回报,这正是我所期望的。如果我执行 ->toSql() 我会看到预期的 sql 语句。但是,如果我执行类似 foreach($threads as $thread){ echo 'inside';} 之类的操作,我什么也不会显示。

【问题讨论】:

  • 请执行 print_r($threads) 以查看您在哪个数组索引或哪个对象中获取数据。然后循环它。
  • 您可能想要执行$temp = $threads->where('title', '=', $request->search);,然后所有后续调用都为$temp = $temp->where('users.id', $request->author); 以及$temp->get()
  • Amit Shah - 当我执行 print_r 时,我得到了我认为是完整的模型对象。它里面有很多不相关的项目,它太大了,我的浏览器崩溃了。

标签: php laravel laravel-4 laravel-5


【解决方案1】:

您没有将结果存储在您的 $threads 变量中。

要么这样做:

$threads = $threads->groupBy(array('threads.id', 'users.username','threads_users.boosts', 'users.id'))
    ->get(array('threads.*','users.username','threads_users.boosts'));

或者创建一个新变量并循环:

$results = $threads->groupBy(array('threads.id', 'users.username','threads_users.boosts', 'users.id'))
    ->get(array('threads.*','users.username','threads_users.boosts'));

foreach ($results as $result) {
    // stuff
}

【讨论】:

    猜你喜欢
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 2018-09-29
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多