即使用户未登录,如何获取用户(已认证)信息?
我想在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>
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
但是,先生,我还想在其他情况下显示用户信息。可能吗 ? –
你想要显示哪个用户的信息?如果用户注销,该应用程序如何知道要显示哪个用户的名称和电子邮件? – Paras
我可以通过使用雄辩来检索用户吗? –
验证::用户采取了当前已验证用户的信息。所以它将在用户登录时工作。
但是,即使用户未登录,我也想显示用户信息。 –
为什么不使用雄辩模型来检索信息?例如,User :: find($ id)等? – pseudoanime
我试过了,但不起作用。显示错误。 –
请在此处发布实际代码,而不是代码图片。 –
抱歉@JayBlanchard,我是堆栈溢出的新手。所以,无法赶上大会。 –