繁体   English   中英

如何使控制器中的foreach进入刀片Laravel的表格视图

[英]How to get foreach in controller into table view in blade laravel

我一直在尝试从Laravel中的Google Analytics(分析)获取数据。 它将以表格形式显示路径页和综合浏览量。 我已经使用spatie / laravel-analytics检索了数据,但是当我在视图上显示数据时,页面浏览量与Google Analytics(分析)并不相符。 因此,我一直在尝试使用以下代码对数据进行排序,但始终会出错

这是我的控制器:

public function google(MediaSite $mediaSite)
{
$ga7day = Analytics::performQuery(
Period::days(7),
'ga:sessions',
[
    'metrics' => 'ga:sessions, ga:pageviews',
    'dimensions' => 'ga:yearMonth, ga:pagePath',



]
);

  $ga1month = Analytics::performQuery(
Period::days(30),
'ga:sessions',
[
    'metrics' => 'ga:sessions, ga:pageviews',
    'dimensions' => 'ga:yearMonth, ga:pagePath',



]
);

$ga3month = Analytics::performQuery(
Period::months(3),
'ga:sessions',
[
    'metrics' => 'ga:sessions, ga:pageviews',
    'dimensions' => 'ga:yearMonth, ga:pagePath',



]
);

$analyticsDataToday = Analytics::performQuery(
Period::days(7),
'ga:sessions',
[
    'metrics' => 'ga:sessions, ga:pageviews',
    'dimensions' => 'ga:yearMonth, ga:pagePath',



]
);

$mediaSite = new MediaSite;

$mediaSite = MediaSite::Where('media_owner_id','1');



foreach ($mediaSite as $site) {


$site->view7days = 0;



foreach ($ga7day as $ga) {
# code...


if($ga['1'] === '/media-site/'. $site->id);
   $site->view7days = $ga['3'];



 # code...
 }


 $site->view1month = 0;


 foreach ($ga1month as $mga) {
 # code...


 if($mga['1'] === '/media-site/'. $site->id);
   $site->view1month = $mga['3'];
 # code...
 }


 $site->view3month = 0;


 foreach ($ga3month as $nga) {
 # code...


 if($nga['1'] === '/media-site/' . $site->id);
   $site->view3month = $nga['3'];


 # code...
 }

 }
 return 
 view('analytics.google',compact('ga7day','ga1month','ga3month',
 'analyticsDataToday','site','mediaSite','ga','mga','nga'));

我的观点:

<body>

  <form method="get" action="{{ action('AnalyticsController@google') }}">

            {{ csrf_field() }}

            <div class="input-group">
              <input type="text" name="q" class="form-control" placeholder="eg: Media Ownner" required>
              <span class="input-group-btn">
                <button type="submit" class="btn btn-default">
                  Go!
                </button>
              </span>
            </div>
        </form>

<br>
<br>
<table class="table">
  <tr>

    <th> Media Site </th>
    <th> 7 days</th>
    <th> 1 month</th>
    <th> 3 month</th> 
    <th> Overall</th>
  </tr>
                        <tr>

                            @foreach ($ga as $index => $key)
                               <tr> <td> {{ $key['1'] }} </td>
                               <td> {{ $key['3'] }} </td>
                                <td> {{ $ga1month[$index]['3'] }}</td>
                                <td> {{ $ga3month[$index]['3'] }}</td>
                                <td> {{ $analyticsDataToday[$index]['3'] }}</td></tr>
                               @endforeach







                        </tr>

                    </table>
</body>
</html>

我不断收到这些错误: 在此处输入图片描述

用以下内容替换您的控制器

public function google(MediaSite $mediaSite) {

$ga7day = Analytics::performQuery(  Period::days(7),
                                    'ga:sessions',
                                    [
                                        'metrics' => 'ga:sessions, ga:pageviews',
                                        'dimensions' => 'ga:yearMonth, ga:pagePath',
                                    ]
                                );

$ga1month = Analytics::performQuery(    Period::days(30),
                                        'ga:sessions',
                                        [
                                            'metrics' => 'ga:sessions, ga:pageviews',
                                            'dimensions' => 'ga:yearMonth, ga:pagePath',
                                        ]
                                    );

$ga3month = Analytics::performQuery(    Period::months(3),
                                        'ga:sessions',
                                        [
                                            'metrics' => 'ga:sessions, ga:pageviews',
                                            'dimensions' => 'ga:yearMonth, ga:pagePath',
                                        ]
                                    );

$analyticsDataToday = Analytics::performQuery(  Period::days(7),
                                                'ga:sessions',
                                                [
                                                    'metrics' => 'ga:sessions, ga:pageviews',
                                                    'dimensions' => 'ga:yearMonth, ga:pagePath',
                                                ]
                                            );

$mediaSite = new MediaSite;

$mediaSite = MediaSite::Where('media_owner_id','1');

foreach ($mediaSite as $site) {
    $site->view7days = 0;
    foreach ($ga7day as $ga) {
        # code...
        if($ga['1'] === '/media-site/'. $site->id);
            $site->view7days = $ga['3'];
        # code...
    }

    $site->view1month = 0;
    foreach ($ga1month as $mga) {
    # code...
    if($mga['1'] === '/media-site/'. $site->id);
        $site->view1month = $mga['3'];
        # code...
    }

    $site->view3month = 0;
    foreach ($ga3month as $nga) {
    # code...
    if($nga['1'] === '/media-site/' . $site->id);
        $site->view3month = $nga['3'];
        # code...
    }
}
return view('analytics.google',compact('mediaSite'));
}

并认为

@foreach ($meadiaSite as $site)
<tr> 
    <td> {{ $site['1'] }} </td>
    <td> {{ $site->view7days }} </td>
    <td> {{ $site->view1month }}</td>
    <td> {{ $site->view3month }}</td>
    <td> {{ /*same logic*/ }}</td>
</tr>
@endforeach

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM