Laravel 5.3自定义类

时间:2016-09-26 09:31:16

标签: laravel laravel-5.2

当我在控制器构造中调用时,在laravel中创建一个自定义类 Auth :: user()不返回任何数据

从函数中调用时,它的工作

班级代码

<?php namespace App\Libraries;



use App\User;
use Auth;
use Illuminate\Support\Facades\DB;
use App\Friends;
class AppLibrarie
{
   private static $friends_ids = array();
    public function __construct()
    {
        self::$friends_ids=Auth::user();
    }
   public function getfriends(){
  return self::$friends_ids;
}
}

和控制器

<?php

namespace App\Http\Controllers;

use App\Libraries\AppLibrarie;
use Illuminate\Http\Request;

use App\Http\Requests;

class LiveController extends Controller
{
    protected $lib;
    public function __construct(AppLibrarie $appLibrarie)
    {
        $this->lib = $appLibrarie;
    }
    public function search(Request $request){
         return response()->json($this->lib->searchdata($request->get('query')));
    }
}

1 个答案:

答案 0 :(得分:0)

Laravel 5.3中已弃用访问经过身份验证的用户会话。以下是升级指南中的段落

  

在以前版本的Laravel中,您可以在控制器的构造函数中访问会话变量或经过身份验证的用户。这从未打算成为框架的明确特征。在Laravel 5.3中,您无法访问控制器构造函数中的会话或经过身份验证的用户,因为中间件尚未运行。

     

作为替代方案,您可以直接在控制器的构造函数中定义基于Closure的中间件。在使用此功能之前,请确保您的应用程序正在运行Laravel 5.3.4或更高版本:

如果要升级

,您需要稍微重新考虑您的身份验证结构