显示要从路径查看的数据

时间:2017-06-24 06:40:55

标签: php laravel routes laravel-5.4

我想显示用户未读消息的总数,因此我创建了单独的函数:

public function getCountMessage($user_id)
{
    ....
    return $count;
}

我访问该功能的途径:

Route::get('/message_count/{user_id}', [
    'uses' => 'MessageController@getCountMessage',
    'as' => 'count.message',
    'middleware' => 'auth'
]);

我有header.blade.php(将继承到master.blade.php)以显示未读邮件的总数。

<li><a href="#">Messages <span class="label label-pill label-danger">{{ route('count.message', ['user_id' =>  Auth::user()->id]) }}</span></a></li>

但输出是

enter image description here

我希望输出看起来像这样:

消息(1)

我想在span中输出该路线的回报,这是可能的还是任何想法如何实现这一点?顺便说一下,我做了一些研究,找不到解决方案。

请注意,header.blade.php仅包含一个包含文件。这意味着没有人将此作为视图返回。希望你明白我的意思。

其他类似的例子,我检索我的图像:

刀片:

<img src="{{ route('account.image', ['filename' => $user->profile_picture_path]) }}">

控制器:

return new Response($file, 200);

图片的价值来自route

4 个答案:

答案 0 :(得分:0)

首先从控制器传递数据到视图:

public function MessageController(){
    ....
    return view('yourView')->with('count',$count);
}

然后如果您有部分View类似标题,没问题,可以在主视图中使用@include。

  • 视图
    • 局部
      • header.blade.php
    • yourView.blade.php

将你的patrial包含在yourView.blade.php上:

@include('header')

使用以下内容在header.blade.php中显示您的计数数据:

{{$count}}

或者您可以直接在header.blade.php上编写代码:

@php
   $count = Auth:user()->id;
@endphp

{{$count}}

答案 1 :(得分:0)

我想你可以试试这个:

您可以在刀片文件中返回$count,如:

public function getCountMessage($user_id)
{
    ....
    return view('view',compact(count));
}

并更改您的刀片文件代码,如:

<li><a href="#">Messages <span class="label label-pill label-danger">{{$count}}</span></a></li>

希望对你有所帮助。

答案 2 :(得分:0)

我找到了解决问题的方法,但我不知道这是不是最好的。我使用jQuery向我的路由发送一个Http请求,并更改我的span的innerHTML。

<script type="text/javascript">
        var theUrl = "{{ route('count.message', ['user_id' =>  Auth::user()->id]) }}"
        $.get(
            theUrl,                
            function(data) {
                document.getElementById("message_count").innerHTML = data;

                if (data == 0) {
                    $('#message_count').removeClass('label-danger');
                    $('#message_count').addClass('label-default');                        
                }                   
            }
        );
</script>

答案 3 :(得分:0)

你可以在laraval中使用count函数,例如:

如果您在视图中传递变量。在我的情况下是一个用户。你可以用: {{ $user->topics->count() }}它显示了属于该特定用户的主题数量。

在你的情况下,这应该是

的长线

{{ $user->messages->count() }}取决于数据库表的调用方式。如果/或这两者在模型中有关系

我希望这可以帮到你,