[英]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.