我是laravel的新手,所以我试图创建一个用于学习目的的小项目。我使用内置的Auth进行登录和注册。这些自动生成的页面工作得很好,现在我在这里通过使用名为postcontroller的控制器创建了一个到资源帖子的路径。
现在在postcontroller中,我检查用户是否有权返回视图:将else发布到登录页面。所以检查一下我做了以下
if (!Auth::guest())
return view('posts');
else
return "......";
现在,Auth :: guest()为登录和注销的用户返回true。
答案 0 :(得分:1)
您确定已登录吗?
尝试使用
转储您的Auth :: user()数据 //convert BitmapDrawable to byte[]
//winsize is height screen user device
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeByteArray(imageData, 0, imageData.length, options);
if (options.outHeight >= (CampainManager.winSize )) {
int x = (options.outHeight / (winSize ));
options.inSampleSize = x;
}
options.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeByteArray(imageData, 0, imageData.length, options);
顺便说一句,如果你在if语句中返回,则不需要使用else。
答案 1 :(得分:0)
您需要确保使用'网络'中间件。默认情况下,主页不使用此功能,但/ home路由会使用此功能,这就是刀片模板在/ home下工作的原因。
添加'网络'中间件和dd(Auth :: user()),你会看到更好的结果。
答案 2 :(得分:0)
但是你必须为中间件添加这行代码,以便在postcontroller中知道它需要检查登录的用户。添加这是PostController:
public function __construct()
{
$this->middleware('auth', ['except' => ['index', 'show']]);
}
在此之后,您需要确保将路由添加到路由列表中。这是通过在Routes / web.php
中添加给定行来完成的Route::resource('user','PostController');
通过在终端输入以下命令来重新检查是否添加了它:
php artisan route:list
添加路线后,控制器知道他们可以互相交谈,你们都已经准备好了。
注意:除非意味着用户只能访问索引并在用户登录时显示路线。请查看laravel documentation以获取更多详细信息。希望这会有所帮助。
答案 3 :(得分:0)
您可以使用
if(!Auth :: user())
//用户未登录
其他
//用户已登录