获取用户的电子邮件 - Laravel 5 PHP

时间:2015-10-03 14:03:36

标签: php laravel

我正在尝试将上传文件的任何用户的电子邮件地址存储到“uploader_name”字符串变量中。我尝试使用以下代码成功 - 尝试上传文件将导致 Class'App \ Http \ Controllers \ Auth'未找到错误消息被抛回。我知道这是一个非常基本的问题,但我似乎找不到任何特别适用于Laravel 5的答案。

这是我目前正在尝试使用但没有成功。

$filelist->uploader_name = Auth::user()->email;

如果有帮助,这里是保存文件的一些自动信息的完整功能。

public function store()
{
    $filelist = new Filelist($this->request->all());
    //store file details - thanks to Jason Day on the unit forum for helping with some of this
    $filelist->name = $this->request->file('asset')->getClientOriginalName();
    $filelist->file_type = $this->request->file('asset')->getClientOriginalExtension();
    $filelist->file_size = filesize($this->request->file('asset'));
    $filelist->uploader_name = Auth::user()->email;
    $filelist->save();
    // Save uploaded file
    if ($this->request->hasFile('asset') && $this->request->file('asset')->isValid()) {
        $destinationPath = public_path() . '/assets/';
        $fileName = $filelist->id . '.' . $this->request->file('asset')->guessClientExtension();
        $this->request->file('asset')->move($destinationPath, $fileName);

    }



    return redirect('filelists');
}

2 个答案:

答案 0 :(得分:1)

你正在获得Class' App \ Http \ Controllers \ Auth'找不到错误,因为您没有使用正确的命名空间:

有两种方法可以解决这个问题:

在您的控制器中添加use关键字

示例:

use Auth;

UploadController{
     ....
}

或直接指定完整命名空间

$filelist->uploader_name = \Auth::user()->email;

答案 1 :(得分:0)

您收到 not found 错误,因为您没有使用正确的命名空间。

如果您使用use关键字,则可以解决此问题:

use Auth;

public uploadController {
...
}

或者您可以使用完整的命名空间:

$filelist->uploader_name = \Auth::user()->email;