Laravel Auth :: user()-> name和Auth :: user()-> id不起作用

时间:2020-06-07 16:09:38

标签: php laravel

您好,我将数据存储在数据库中,但是当我使用CALL apoc.load.jdbc("jdbc:pioledbent://[Servername]/DataSource=[Datasourcename];DCA=[filename].dca;ProtocolOrder=https/Soap:5461,NetTcp:5462;","[Table]")YIELD row RETURN row.Name;时,它不起作用。在我的另一个控制器中。但是,当我对名称和ID进行硬编码时,它会起作用。我已经导入了auth,但仍然遇到相同的问题。谢谢您的帮助。这很奇怪。

Auth::user()->name

btw im使用vue作为前端。

6 个答案:

答案 0 :(得分:1)

您需要导入/添加

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 '
    ]);
}

这是来自Laravel 7.14。您没有在函数中传递id。

答案 1 :(得分:0)

确保您已登录。 并使用它

auth()->user()->name;
auth()->id();

是一样的。 如果错误500,请检查.env是否存在,然后尝试

php artisan key:generate
php artisan cache:clear 
php artisan config:clear

答案 2 :(得分:0)

如果您不是经过验证的用户,那么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. '
         ]);
    }
}

答案 3 :(得分:0)

在创建论坛之前,您可以执行auth()-> check()

if(auth()->check()){ //returns true or false
    $user = auth()->user();
    $create = new ForumPost ; 
    $create->post_content = $request->content;
    $create->user_name = $user->name;
    $create->comment_frequency = 100;
    $create->user_id = $user->id;
    $create->save();

    return response()->json([
        'message' => 'Discussion created successfully '
    ]);
}else{
     return response()->json(['message'=>'not authenticated could not create a forum.']);
}

也许可以。

答案 4 :(得分:0)

我设法通过创建道具使其工作,并将其传递给我的发帖请求。我不知道为什么auth()-> user()-> ....不能正常工作。我认为当proj出现问题。越来越大。感谢您的回答

答案 5 :(得分:0)

您可以在控制器中使用

将用户带到您的控制器。.在控制器头部的用户身份验证。

use Auth;
use App\User;

从以下位置获取用户ID:

Auth::id();

获取用户名

Auth::user()->name;