Php Laravel Auth::user()->;名称和身份验证::user()->;身份证不起作用
嗨,我正在数据库中存储数据,但当我使用Php Laravel Auth::user()->;名称和身份验证::user()->;身份证不起作用,php,laravel,Php,Laravel,嗨,我正在数据库中存储数据,但当我使用Auth::user()->name时,它不起作用。在我的另一个控制器中,它正在工作。但是当我硬编码名字和id时,它就工作了。我已经导入了auth,但仍然得到相同的问题。谢谢你的帮助。这很奇怪 namespace App\Http\Controllers; use Illuminate\Http\Request; use App\ForumPost; use Auth; public function create_d
Auth::user()->name
时,它不起作用。在我的另一个控制器中,它正在工作。但是当我硬编码名字和id时,它就工作了。我已经导入了auth,但仍然得到相同的问题。谢谢你的帮助。这很奇怪
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\ForumPost;
use Auth;
public function create_discussion(Request $request){
$create = new ForumPost ;
$create->post_content = $request->content;
$create->user_name = Auth::user()->name;
$create->comment_frequency = 100;
$create->user_id = Auth::user()->id;
$create->save();
return response()->json([
'message' => 'Discussion created successfully '
]);
}
顺便说一句,我正在使用vue作为前端。请确保您已登录。 用这个
auth()->user()->name;
auth()->id();
都一样。
如果出现错误500,请检查.env是否存在,然后重试
php artisan key:generate
php artisan cache:clear
php artisan config:clear
如果您不是经过身份验证的用户,则
Auth::user()->id
将无法工作。
在之前执行一次Auth::check()
,以确保您已正确登录:
public function create_discussion(Request $request){
if(Auth::check()){
$create = new ForumPost ;
$create->post_content = $request->content;
$create->user_name = Auth::user()->name;
$create->comment_frequency = 100;
$create->user_id = Auth::user()->id;
$create->save();
return response()->json([
'message' => 'Discussion created successfully '
]);
} else {
return response()->json([
'message' => 'You are not authentic user. '
]);
}
}
在创建论坛之前,您可以执行auth()->check() 这可能有用。您需要导入/添加
use Auth;
use App\User;
然后在控制器中将登录用户另存为:
public function create_discussion(Request $request, $id){
$create = new ForumPost ;
$create->post_content = $request->content;
$create->user_name = auth()->user()->name;
$create->comment_frequency = 100;
$create->->user_id = auth()->user()->id;
$create->save();
return response()->json([
'message' => 'Discussion created successfully '
]);
}
这是拉威尔7.14的。您没有在函数中传递id。我创建了一个道具并将其传递给我的post请求,从而使其正常工作。我不知道为什么那个auth()->user()->。。。。不起作用。我认为这将是一个问题,当项目。越来越大。感谢您在控制器中使用的答案 让用户访问您的控制器。。控制器头中的用户身份验证
use Auth;
use App\User;
从以下位置获取用户id:
Auth::id();
从中获取用户名
Auth::user()->name;
您如何使用vue验证您的应用程序?请显示您的路由文件。我没有在api路由中使用任何身份验证。我只想获取当前的blogged in用户名和IDI如果您没有对路由使用身份验证,那么如何才能成为经过身份验证的用户?你是说有一个用户登录了你的web路由,但它没有显示在你的api路由上吗?
如果(Auth::check()){/*用户经过身份验证并且可以访问*/}
或者更好如果(!Auth::check()){abort(403,'未经授权的操作');}
Hi sir我添加了身份验证检查,但它会命中else语句,即用户未通过身份验证。但用户已登录。我的另一个问题是,如果用户已登录,是否意味着该用户已通过身份验证?是,登录用户已通过身份验证。谢谢。用户已登录,但其命中else语句idk why.Api routes is具有默认身份验证中间件权限?因此,首先,如果im没有登录,它不会将我重定向到控制器方法。但它会点击controller方法,这意味着我已登录,但当我使用auth()->id时。。。它不工作,它的响应是错误500谢谢你的回答我已经导入了用户模型和身份验证,并执行了你上面键入的操作,但仍然错误500内部服务器错误。请检查你的模型。添加保护并填充它。这是500错误的原因之一。如果不起作用,请怀疑控制器、模型和刀片文件。我使用$guarded=[]仍然不起作用。用户已经登录,这意味着我可以使用auth()->func,但仍然无法使用idk。为什么会发生这种情况。您使用的是api路由吗??如果您需要指定api防护。试试auth('api')->user(),也许它会工作的。谢谢我通过添加道具而不是使用auth来让它工作。我也尝试过这个命令,但仍然不起作用。
Auth::user()->name;