php - Auth::user()->id 返回“试图获取非对象的属性”——Laravel 5.8
问题描述
更新 2
我做了喜欢和不喜欢的方法。但是当我尝试喜欢这篇文章时,它会返回一个错误。Route [login] not defined.
我正在使用护照 API 登录。我正在为登录等提供令牌......我登录没有问题。我看到只有身份验证用户才能看到的页面。但似乎当我喜欢这篇文章时,Auth::
不明白用户是否登录。也许这就是问题所在。因为我使用的是 Passport?所以在控制器中而不是Auth::
我像使用它一样$user = $request->user();
(你可以看到下面的控制器。)但是当我喜欢这篇文章时仍然会弹出同样的错误。Route [login] not defined.
控制器
public function postLikeArticle( Request $request, $articleID )
{
$article = Article::where('id', '=', $articleID)->first();
$user = $request->user();
$article->likes()->attach( $user->id, [
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
]);
return response()->json( ['article_liked' => true], 201 );
}
public function deleteLikeArticle( Request $request, $articleID )
{
$article = Article::where('id', '=', $articleID)->first();
$user = $request->user();
$article->likes()->detach( $user->id );
return response(null, 204);
}
路线
Route::middleware('auth:api')->group(function() {
Route::get('/user', function (Request $request) {
return $request->user();
});
Route::get('/articles/{id}/like', 'Api\ArticlesController@postLikeArticle');
Route::get('/articles/{id}/like', 'Api\ArticlesController@deleteLikeArticle');
});
如果您需要查看更多文件。请在评论中命名。
解决方案
您喜欢/不喜欢的路由不受auth
保护,这意味着用户可能未登录,因此您可以将所有需要经过身份验证的用户的路由分组,如下所示:
// public routes out of the group, for example:
Auth::routes();
Route::middleware('auth:api')->group(function() {
Route::get('/user', function (Request $request) {
return $request->user();
});
Route::get('/articles/{id}/like', 'Api\ArticlesController@postLikeArticle');
// you cannot have same routes for both, so this
// Route::get('/articles/{id}/like', 'Api\ArticlesController@deleteLikeArticle');
// should be this:
Route::get('/articles/{id}/dislike', 'Api\ArticlesController@deleteLikeArticle');
});
然后要么:Auth::id()
要么Auth::user()->id
应该给你同样的。甚至是辅助功能,因此您无需担心导入..
auth()->id();
// or
auth()->user()->id;
推荐阅读
- php - PHP函数-当第一个,第二个和最后一个字段相同但在文件的不同行上时如何获取三个字段并执行和操作
- java - jSerialComm:无法打开端口(Arduino Mega 2560)
- nuget - 实施 MassTransit CorrelatedBy
没有 MassTransit nuget 的界面 - python - 为什么这个随机生成的球形点云分布不均匀?
- java - 无法初始化主类 selenium.Test
- php - 从 ssl 到非 ssl 服务器的 Ajax Post 请求
- r - R中的滞后回归:确定最佳滞后
- android - setContentView() 没有看到我的 R.layout 文件夹中的所有布局
- matlab - 对齐两个图像
- c# - EF6 库迁移到 .net 标准 2.1 - .dll 中不包含 EDMX 资源