2016-06-29 16 views
0

ここは私のコントローラです。私は、このコントローラの機能のいずれかを呼び出す場合LaravelのAuth :: user-> idを取得できません

<?php 
/** 
* Created by PhpStorm. 
* User: ed 
* Date: 05/02/16 
* Time: 09:33 
*/ 

namespace App\Http\Controllers\API\V1; 

use App\Certificate; 
use App\Country; 
use App\Film; 
use App\FilmExtra; 
use App\FilmFavourite; 
use App\FilmGenre; 
use App\FilmLike; 
use App\FilmView; 
use App\Genre; 
use App\Language; 
use App\Magazine; 
use App\News; 
use App\User; 
use Illuminate\Support\Facades\Auth; 
use Illuminate\Support\Facades\DB; 
use Illuminate\Support\Facades\Input; 

class MagazineController extends ApiController 
{ 
    public function viewAll(){ 



     echo Auth::user()->id; 
     exit; 

     $user_id = Input::get('user_id'); 

     $magazines = Magazine::paginate(5); 
     return parent::api_response($magazines->toArray(), true, ['return' => 'all magazines'], 200); 
    } 

    public function getMagazine($id){ 
     $magazine = Magazine::find($id); 
     if($magazine){ 
      return parent::api_response($magazine->toArray(), true, ['return' => 'magazine details'], 200); 
     }else{ 
      return parent::api_response([], false, ['error' => 'Couldn\'t find that magazine'], 404); 
     } 
    } 

    protected function getURL($id){ 
     $magazine = Magazine::find($id); 
     if($magazine){ 
      return parent::api_response(['url' => $magazine->file_url], true, ['return' => 'magazine url'], 200); 
     }else{ 
      return parent::api_response([], false, ['error' => 'Couldn\'t find that magazine'], 404); 
     } 
    } 

    public function search($term){ 
     $magazines = Magazine::search($term)->paginate(5); 
     return parent::api_response($magazines, true, ['return' => 'search for '.$term], 200); 
    } 

    public function purchased(){ 

     $magazines = Magazine::leftJoin('ordered_items', 'ordered_items.item_id', '=', 'magazines.id') 
         ->leftJoin('orders', 'orders.id', '=', 'ordered_items.order_id') 
         ->leftJoin('items', 'items.id', '=', 'ordered_items.item_id') 
         ->where('orders.user_id', $user_id) 
         ->where('items.class', 'book'); 

     if(Input::get('filter')) { 
      $jsonFilter = Input::get('filter'); 
      $filters = json_decode($jsonFilter); 

      foreach ($filters as $filter => $value){ 
       switch ($filter){ 
        case "genre": 
         if($value){ 
          $magazines = $magazines->whereHas('genre', function ($query) use($value) { 
           $query->whereIn('genre_id', $value); 
          }); 
         } 
         break; 
        case "cert": 
         if($value){ 
          $magazines = $magazines->whereIn('cert', $value); 
         } 
         break; 
        case "country": 
         if($value){ 
          $magazines = $magazines->whereIn('country', $value); 
         } 
         break; 
        case "lang": 
         if($value){ 
          $magazines = $magazines->whereHas('languages', function ($query) use($value) { 
           $query->whereIn('language_id', $value); 
          }); 
         } 
         break; 
       } 
      } 


     } 

     $magazines = $magazines->paginate(5); 

     return parent::api_response($magazines->toArray(), true, ['return' => 'all magazines'], 200); 
    } 

} 

私は私のAuth::user()->idを取得することはできませんよ。

エラーが発生しています。

MagazineController.phpライン54でErrorException:私は、他のコントローラでその作業罰金をAuth::user()->idをエコーし​​ようとする非オブジェクト

のプロパティを取得しようとすると laravel 5.2

を使用して

は、誰も私を助けることができますか?

ご希望の場合はお気軽にご質問ください。

+0

あなたは、あなたがそれを取得することはできません何を意味するのですか?それはエラーを投げているのですか?それとも何も表示されていませんか? – Samsquanch

+0

@Samsquanchええ、エラーを投げます。MagazineController.phpの54行目のエラー: 非オブジェクトのプロパティを取得しようとしています –

+0

$ user = Auth :: user(); echo $ user-> id;出口; –

答えて

2

おそらくAuth::usernullを返し、idをnullにしようとしています。何ApiController

if (Auth::check()) { 
    // The user is logged in... 
    echo Auth::user()->id; 
} 
+0

私はこの友達を知っていますが、動作していません.... –

+0

スカイプ? –

0

は、したがって、ユーザーは次のように記録されていることを確認してください?

変更

namespace App\Http\Controllers; 

平野ControllerApiControllerを変更し、

代わりに起こることになるかどうか確認しようとする上部の名前空間:そうのような

class MagazineController extends ApiController 

変更に:

class MagazineController extends Controller 
+0

クラス 'App \ Http \ Controllers \ API \ V1 \ Controller'が見つかりません –

+0

私は自分の答えを更新しました。また、名前空間も変更してください。 –

+0

完了です。バディーあなたの素早い対応に感謝します。 –

0

このコントローラのルートがwebミドルウェアグループにラップされていることを確認してください。

また、MagazineControllerApiControllerに拡張されているので、ApiControllerControllerになるようにしてください。

+0

そのようなものだけ。まだ私はなぜそれが動作していないかわからない –

0

は次のように

$user_collection = Auth::user(); 
echo $user_collection->id; 
exit; 
0

Laravel 5.2道をそれを使用して、あなたのユーザーテーブルのID名を変更しましたか?私はそれを経験した。私はすべて私の首都(ID)を作った。私はLinux上にあり、db、table、およびcolumnの名前は大文字と小文字が区別されます。 usersテーブルのidカラムを確認してみてください。

つまり、ユーザーがログインしていることを確信している場合は、間違っていないとnullになります。

+0

あなたはスカイプに来て、私を助けてくれますか? ?私はすべてのものをチェックした。すべて正しいと思われる –

0

は、ユーザーログイン、または単にあなたのアクセスユーザーIDの前に確認を入れていることを確認するためにログインミドルウェアの下にコントローラーを置き:

if (Auth::check()) { 
    $id = Auth::user()->id; 
} 
+0

bro。、 –

関連する問題