【问题标题】:Can't get user_id Laravel with Auth::user() just with \Auth::user()仅使用 \Auth::user() 无法使用 Auth::user() 获取 user_id Laravel
【发布时间】:2023-04-04 19:02:01
【问题描述】:

对不起,如果这是一个菜鸟问题,但我正在尝试在 laracast 上学习 laravel,但我自己无法解决这个问题。

我的 ArticlesController 上有一个存储功能,如下所示:

public function store(ArticleRequest $request)
    {
        $article = new Article($request->all());

        Auth::user()->articles()->save($article);

        return redirect('articles');
    }

它返回一个空白页,表明这是一些错误,但如果我更改为

    \Auth::user()->articles()->save($article);

它按预期工作,使用user_id 字段保存文章。
我尝试使用 use App\Http\Controllers\Auth\AuthController; 导入,但我认为这不是办法。

*obs: Laravel 5.0

【问题讨论】:

    标签: php laravel namespaces


    【解决方案1】:

    在现代 PHP 中,如果您在文件顶部看到以下内容

    namespace App\Foo\Bar;
    

    这意味着该文件中的所有代码都位于App\Foo\Bar 命名空间的一部分。如果您尝试在此文件中使用无命名空间的类

    $object = new Auth;
    

    PHP 将假定您要使用该类。也就是说,和说是一样的

    $object = \App\Foo\Bar\Auth;
    

    当你说

    \Auth
    

    您是在告诉 PHP “使用 global,名为 Auth 的顶级命名空间类。

    顺便说一句,这是对 PHP 的完全有效的使用。但是,如果您不喜欢使用全局 \ - 您可以使用 use 语句将 \Auth 类导入您的 PHP 文件(有时在其他语言中称为“模块”)。

    namespace App\Foo\Bar;
    
    //pull in the global class `Auth`
    use Auth;
    //...
    
    $foo = new Auth;
    

    【讨论】:

    • 感谢您的解释,认为这是我还没有掌握的基础知识的一部分......也许随着时间和更多的在线课程。 =)
    猜你喜欢
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 2016-02-02
    • 2019-04-06
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    相关资源
    最近更新 更多