2016-09-26 86 views
-1

laravel创建一个自定义的类时,我在控制器结构致电然后 验证::用户()不返回任何数据Laravel 5.3自定义类

当从一个函数调用,然后它的工作

类代码

<?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'))); 
    } 
} 
+0

验证::用户()总是返回一个User类型的Model,它是一个对象。您将该对象放入数组中。这是错误的,这就是为什么你没有得到任何数据。使用这个,而不是Auth :: user() - > toArray(); –

回答

0

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

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

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

你需要重新考虑你的身份验证结构一点,如果你是升级