使用\ Auth :: user()无法使用Auth :: user()获取user_id Laravel

时间:2015-03-24 02:40:28

标签: php laravel namespaces

抱歉,如果这是一个菜鸟问题,但我正在尝试学习拉拉斯特的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

1 个答案:

答案 0 :(得分:7)

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

namespace App\Foo\Bar;

它表示该文件中的所有代码都在App\Foo\Bar命名空间的一部分中。如果您尝试在此文件中使用无命名空格的类

$object = new Auth;

PHP将假设您要使用该类。换句话说,它与说

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

当你说

\Auth

你告诉PHP“使用名为Auth全局,顶级命名空间类。

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

use