2016-01-16 37 views
0

我是laravel的新手,所以我试图创建一个用于学习目的的小项目。我使用内置的Auth进行登录和注册。这些自动生成的页面工作得很好,现在在这里,我使用控制器postcontroller创建了资源帖子的路由。Auth :: guest()对登录和注销用户都返回true

现在在postcontroller中检查用户是否有权返回视图:posts else登录页面。因此,要检查我下面

if (!Auth::guest()) 

return view('posts'); 

else 

return "......"; 

现在,这里的验证::客()返回都记录在真实和注销用户。

+0

您的路线是否应用了“网络”中间件? – lagbox

+0

是Route :: group(['middleware'=>'web'],function(){Route :: auth(); Route :: get('/ home','homecontroller @ index); – rranj

回答

0

您确定您已经登入吗?

尝试甩掉你的验证::用户()数据

dd(Auth::user());

顺便说一下,如果你在if语句,返回你不需要使用别的。

+0

是的,即使我当我在后台管理器中转储Auth :: user – rranj

+1

那么它应该是Auth :: user()。但是你说它返回null,这意味着你没有登录。 –

+0

但我做了登录在使用提供的登录页面时, – rranj

0

您需要确保使用'网络'中间件。默认情况下,主页不使用此功能,但是/ home路径使用此功能,这就是刀片模板在/ home下工作的原因。

添加'网络'中间件和dd(Auth :: user()),你会看到更好的结果。

0

但必须添加这行代码中间件,它需要对支票登录users.Add这个PostController中知道的是PostController中:

public function __construct() 
{ 

    $this->middleware('auth', ['except' => ['index', 'show']]); 
} 

这之后,您需要确保路由被添加到路由列表中。

php artisan route:list 

一旦路径被添加,控制器知道他们:这是通过添加在路线中给定的线,如果其通过在终端中输入命令之下进行添加/ web.php

Route::resource('user','PostController'); 

复检可以互相交谈,你们都是集合的。

注意:除了表示用户只能访问索引并在用户登录时显示路由。在这里查看laravel documentation了解更多详情。希望这可以帮助。