2016-09-26 8 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を実行しているか、上記されていることを確認してください。

あなたは