首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在缓存Laravel 4视图,不会更新

正在缓存Laravel 4视图,不会更新
EN

Stack Overflow用户
提问于 2015-11-23 16:32:34
回答 1查看 80关注 0票数 0

我返回的视图如下:

代码语言:javascript
复制
public function leaderboard()
{
    return ['view' => View::make('phones.leaderboard-table', ['data' => $this->leaderboardData()])->render(), 'counts' => $this->counts()];
}

排行榜的数据:

代码语言:javascript
复制
public function leaderboardData()
{
    $date = Input::get('date') ? \Carbon\Carbon::parse(Input::get('date')) : \Carbon\Carbon::now();
    $leaderboard_data = [];

    $query = DB::table('phones_calls AS PC')
        ->select('U.id',
            DB::raw('CONCAT(UD.firstName, " fff", UD.lastName) AS trader_name'),
            DB::raw('COUNT(*) AS total_calls'),
            DB::raw('SUM(talkTime) AS talk_time'),
            DB::raw('AVG(talkTime) AS talk_time_avg'),
            DB::raw('MAX(date) AS last_call')
        )
        ->join('users AS U', 'U.id', '=', 'PC.userId')
        ->leftJoin('users_details AS UD', 'UD.userId', '=', 'U.id')
        ->leftJoin('company_zones AS CZ', 'CZ.id', '=', 'U.zone_id');
    if (Input::get('period') == 'week') {
        $query->where(DB::raw('DATE(PC.date)'), '>=', $date->startOfWeek());
    } elseif (Input::get('period') == 'month') {
        $query->where(DB::raw('DATE(PC.date)'), '>=', $date->startOfMonth());
    } elseif (Input::get('period') == 'year') {
        $query->where(DB::raw('DATE(PC.date)'), '>=', $date->startOfYear());
    } else {
        $query->where(DB::raw('DATE(PC.date)'), $date->toDateString());
    }

    $query->where('didConnect', 1)
        ->where('departmentId', 5)
        ->where('U.enabled', 1);
    if (Input::get('zone')) {
        $zone_ranges = explode(',', Input::get('zone'));
        $left = $zone_ranges[0];
        $right = $zone_ranges[1];
        $query->where('CZ.l', '>=', $left)
            ->where('CZ.r', '<=', $right);
    } else {
        $zone_ranges = explode(',', Auth::zone()->lr);
        $left = $zone_ranges[0];
        $right = $zone_ranges[1];
        $query->where('CZ.l', '>=', $left)
            ->where('CZ.r', '<=', $right);
    }
    $query->orderBy(DB::raw('SUM(talkTime)'), 'desc')
        ->groupBy('U.id');

    $q2 = clone $query;
    $q3 = clone $query;

    $outbound_data = $query->where('callTypeId', 2)->get();
    $inbound_data = $q2->where('callTypeId', 3)->get();
    $internal_data = $q3->where('callTypeId', 1)->get();

    foreach ($outbound_data as $data) {
        $leaderboard_data[$data->id]['trader_name'] = $data->trader_name;
        $leaderboard_data[$data->id]['outbound'] = $data;
    }

    foreach ($inbound_data as $data) {
        $leaderboard_data[$data->id]['trader_name'] = $data->trader_name;
        $leaderboard_data[$data->id]['inbound'] = $data;
    }

    foreach ($internal_data as $data) {
        $leaderboard_data[$data->id]['trader_name'] = $data->trader_name;
        $leaderboard_data[$data->id]['internal'] = $data;
    }
    return $leaderboard_data;
}

视图‘phones.leaderboard.phones.leaderboard table’:

代码语言:javascript
复制
@foreach($data as $id => $row)
    <tr data-user-id="{{$id}}" class="{{($i == 1 ? "row-success" : "")}}{{Auth::id() == $id ? ' row-me' : ''}}">
        <td>{{$i++}}</td>
        <td>{{$row['trader_name']}}</td>

        <td>{{(isset($row['internal']) ? ($drilldown ? "<a href='#' class='drilldown' data-call-type-id='1'>" : "").number_format($row['internal']->total_calls).($drilldown ? "</a>" : "") : "-")}}</td>
        <td>{{(isset($row['internal']) ? formatSeconds($row['internal']->talk_time) : "-")}}</td>
        <td>{{(isset($row['internal']) ? formatSeconds($row['internal']->talk_time_avg) : "-")}}</td>
        <td>{{(isset($row['internal']) ? \Carbon\Carbon::parse($row['internal']->last_call)->diffForHumans() : "-")}}</td>

        <td>{{(isset($row['inbound']) ? ($drilldown ? "<a href='#' class='drilldown' data-call-type-id='3'>" : "").number_format($row['inbound']->total_calls).($drilldown ? "</a>" : "") : "-")}}</td>
        <td>{{(isset($row['inbound']) ? formatSeconds($row['inbound']->talk_time) : "-")}}</td>
        <td>{{(isset($row['inbound']) ? formatSeconds($row['inbound']->talk_time_avg) : "-")}}</td>
        <td>{{(isset($row['inbound']) ? \Carbon\Carbon::parse($row['inbound']->last_call)->diffForHumans() : "-")}}</td>

        <td>{{(isset($row['outbound']) ? ($drilldown ? "<a href='#' class='drilldown' data-call-type-id='2'>" : "").number_format($row['outbound']->total_calls).($drilldown ? "</a>" : "") : "-")}}</td>
        <td>{{(isset($row['outbound']) ? formatSeconds($row['outbound']->talk_time) : "-")}}</td>
        <td>{{(isset($row['outbound']) ? formatSeconds($row['outbound']->talk_time_avg) : "-")}}</td>
        <td>{{(isset($row['outbound']) ? \Carbon\Carbon::parse($row['outbound']->last_call)->diffForHumans() : "-")}}</td>

        <td>{{($drilldown ? "<a href='#' class='drilldown' data-call-type-id='0'>" : "").number_format(((isset($row['inbound']) ? $row['inbound']->total_calls : 0)+(isset($row['outbound']) ? $row['outbound']->total_calls : 0))).($drilldown ? "</a>" : "")}}</td>
        <td>{{formatSeconds((isset($row['inbound']) ? $row['inbound']->talk_time : 0)+(isset($row['outbound']) ? $row['outbound']->talk_time : 0))}}</td>
    </tr>
@endforeach

问题是,无论我如何改变SQL等,它都不会更新。

如何禁用此页的视图缓存?或者,有没有更好的方法来获得这种观点?

EN

回答 1

Stack Overflow用户

发布于 2015-11-23 17:02:36

尝试执行以下命令:php artisan cache:clear

如果不起作用,请备份您的应用程序目录,然后尝试手动删除这些目录中的所有内容:

app/storage/views/

app/storage/cache/

注意:不要删除目录本身,因为Laravel会抱怨,只删除其中的所有文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33866537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档