繁体   English   中英

在Laravel 5中将计数器变量从控制器传递到View

[英]Passing counter variable from controller to View in laravel 5

我想在我的laravel网站上做一个柜台。 此计数器接受从Carbon :: now()创建的模型Comments中的所有注释,直到startofMonth()。 所以我有我的控制器和功能计数器:

 class CommentsController extends Controller
{
        public function counter()
    {
        $new_comments=Comments::where('created_at', Carbon::now()->startofMonth())->get();

        $counted->count($new_comments['created_at']);


        return View::make('pages.dashboard')->with('new_comments', $counted);        
    }
}

我的刀片模板:

<div class="row">
       <div class="col-xs-3">
             <i class="fa fa-comments fa-5x"></i>
       </div>
           <div class="col-xs-9 text-right">
              <div class="huge">{{!!$new_comments!!}}</div>
              <div>New Comments!</div>
</div>

即使在控制器中调用了变量,我仍然收到变量未定义的错误消息! 当刀片模板中未调用该变量时,仪表板页面可以正常工作。

编辑:

如果忽略控制器,并设法将以下内容添加到我的视图中,我就可以使其正常运行:

{{App\Comments::count()}}

这仅显示表Comments中的行总数,但是我将尝试在其中添加mySQL查询。

我仍然不知道为什么不能从控制器中将其作为变量调用。

在刀片模板中,您正确地调用了它,但是! 带来{{!!$new_comments!!}}这样的问题,它会说变量undefined。

不用!!尝试,对我有用。

首先:您要把所有评论从一个月初开始创建到现在,您需要一个whereBetween查询,不相等。

第二:您调用未定义的变量$ counted。 我认为您需要删除

$counted->count($new_comments['created_at']);

并传递$ new_comments查看而不是$ counted

return View::make('pages.dashboard')->with('new_comments', $new_comments);  

并在视图中显示评论计数

{{ $new_comments->count() }}

希望这对您有帮助

这是一个较晚的答案,但是我相信您使用->with()函数错误地传递了变量。 根据我对Laravel的经验, ->with()使用数组语法将多个变量传递给视图。 例如:

 return View::make('pages.dashboard')
 ->with(["new_comments" => $new_comments, "counted" => $counted]);
 // Note the array usage, works with [] or array()

然后,在您的dashboard.blade.php您可以调用{{ $new_comments }}{!! $new_comments !!} {!! $new_comments !!}该值(一个忽略HTML标记,一个包括HTML标记。)

另外,尝试回显Eloquent集合的内容(即Comment::get()而不是Comment::first()类的东西)可能无效。 您应该遍历结果并相应地回显:

@foreach($new_comments AS $new_comment)
{!! $new_comment->created_at !!}
...
@endforeach

解决了。 我在另一个(页面)控制器中调用return view :: make(dashboard)。 该控制程序为先例,因此不会出现此视图。 因此,在页面控制器中,我应用了以下内容:

public function dashboard()
    {
        $count = Comments::where('created_at', '>', Carbon::today())->count();

        return View::make('pages.dashboard')->with('new_comments_count', $count);
    }

然后,我可以在视图中调用new_comments_count。 非常感谢您的帮助。

暂无
暂无

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

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