2017-02-27 102 views
0

我想在Laravel中公开显示内置用户表的用户信息。更具体地讲,任何人都可以看到用户信息(电子邮件用户名)没有登录 我在刀片文件中使用这些:即使用户未登录,如何获取用户(已认证)信息?

{{ Auth::user()->name }} 
{{ Auth::user()->email }} 

但它只能在用户登录否则显示错误。 即使我已经在控制器中使用了ELOQUENT并已通过$用户对象与查看。 我附上了图片,以便您能够理解我的问题。这是我的PagesController文件

<?php 

namespace App\Http\Controllers; 
use App\Post; 
use App\User; 

class PagesController extends Controller{ 
    public function getIndex(){ 
     $posts=Post::orderBy('id', 'DESC')->paginate(4); 
     $user=User::all(); 
     return view('pages.welcome')->withPosts($posts)->withUser($user); 
    } 
} 

这是我welcome.blade.php文件

<div class="panel-heading">{{ ucwords($user->name) }}</div> 
+0

请在此处发布实际代码,而不是代码图片。 –

+0

抱歉@JayBlanchard,我是堆栈溢出的新手。所以,无法赶上大会。 –

回答

1

Auth :: user()返回当前已认证的用户或null用于访客用户。所以,如果你在一个guest用户拨打Auth::user()->name它会显示错误trying to get property of non-object,因为它试图从一个空的对象获取名称

您可以使用这样的事情在你的刀片:

@if(Auth::check()) 
    User: {{ Auth::user()->name }} 
    Email: {{ Auth::user()->email }} 
@else 
    User: Guest 
@endif 

如果你想显示所有用户,请在您的刀片中使用以下内容:

@foreach(\App\User::all() as $user) 
    User: {{ $user->name }} 
    Email: {{ $user->email }} 
@endforeach 
+0

但是,先生,我还想在其他情况下显示用户信息。可能吗 ? –

+1

你想要显示哪个用户的信息?如果用户注销,该应用程序如何知道要显示哪个用户的名称和电子邮件? – Paras

+0

我可以通过使用雄辩来检索用户吗? –

1

验证::用户采取了当前已验证用户的信息。所以它将在用户登录时工作。

+0

但是,即使用户未登录,我也想显示用户信息。 –

+0

为什么不使用雄辩模型来检索信息?例如,User :: find($ id)等? – pseudoanime

+0

我试过了,但不起作用。显示错误。 –

相关问题