2016-09-26 2 views
-1

Создать собственный класс в laravel, когда я называю в конструкции контроллера затем Auth :: пользователь() не возвращает никаких данных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

Auth :: пользователя() всегда возвращает модель типа User, которая является объектом. Вы помещаете этот объект в массив. Это неправильно, поэтому вы не получаете никаких данных. Используйте это вместо Auth :: user() -> toArray(); –

ответ

0

Доступ к сеансам аутентифицированных пользователей устарел в Laravel 5.3. Вот параграф в руководстве по обновлению

В предыдущих версиях Laravel вы могли получить доступ к переменным сеанса или аутентифицированному пользователю в конструкторе вашего контроллера. Это никогда не предназначалось для явной черты структуры. В Laravel 5.3 вы не можете получить доступ к сеансу или аутентифицированному пользователю в конструкторе вашего контроллера, потому что промежуточное программное обеспечение еще не запущено.

В качестве альтернативы вы можете определить промежуточное программное обеспечение на основе Closure непосредственно в конструкторе вашего контроллера. Перед использованием этой функции убедитесь, что ваше приложение работает Laravel 5.3.4 или выше:

Вам нужно будет пересмотреть вашу структуру аутентификации немного, если вы хотите обновить

Смежные вопросы