Laravel 4:使用$ this和Undefined变量:user_id

时间:2014-01-24 22:29:44

标签: php laravel-4

我是Laravel的新手,我有一些问题

第一个问题:当我使用$ this->在__construct函数中,并希望在方法中使用它像这样的代码:

// construct method
public function __construct() {
        $this->user_id = Auth::user()->id_user;
}
// another method 
    public function index()
    {


        $this->data['files'] = DB::table('mhd_cloud_transfer_files')->distinct()
                    ->where('mhd_cloud_transfer_files.to_transfer_file',$this->user_id )
                    ->where('mhd_cloud_transfer_files.folder_transfer_file',0)
                    ->orwhere(function($query){
                        $query->where('from_transfer_file', $this->user_id );
                        $query->where('to_transfer_file',0);
                    })
                    ->join('mhd_cloud_files', 'mhd_cloud_files.id_file', '=','mhd_cloud_transfer_files.id_file')
                    ->join('mhd_main_users', 'mhd_main_users.id_user', '=', 'mhd_cloud_files.author_file')
                    ->paginate(25);
 }

此错误:

  

ErrorException:未定义的变量:user_id

当我使用$ this->时出现另一个问题在方法

同样的问题这个错误:

  

不在对象上下文中时使用$ this

这是我的所有代码(控制器类) http://pastebin.com/eVbuknLd

1 个答案:

答案 0 :(得分:0)

尝试将public var $user_id添加到类声明中。

只需记住检查Auth::user()是否有NULL表示没有用户登录。除非您确定在使用此类的任何地方进行检查。