Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法获取身份验证::用户->;拉威尔的身份证_Php_Laravel_Laravel 5.2 - Fatal编程技术网

Php 无法获取身份验证::用户->;拉威尔的身份证

Php 无法获取身份验证::用户->;拉威尔的身份证,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,这是我的控制器 <?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; us

这是我的控制器

<?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
返回
null
,您正试图获取null的
id

因此,请确保用户以如下方式登录:

if (Auth::check()) {
  // The user is logged in...
  echo Auth::user()->id;
}
ApiController做什么

将顶部的命名空间更改为

namespace App\Http\Controllers;
尝试用普通的
控制器更改
ApiController
,并检查将发生什么

而不是:

class MagazineController extends ApiController
这样改变它:

class MagazineController extends Controller

确保此控制器的路由包装在
web
中间件组中


另外,由于
MagazineController
扩展了
ApiController
,因此请确保
ApiController
扩展了
控制器

像这样使用Laravel 5.2方式

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

您是否更改了users表的id名称?我经历过。我把我所有的钱都记下来了。我使用的是Linux和db,表和列名区分大小写。尝试检查用户表的id列


也就是说,如果您确定用户已登录。否则,如果我没有弄错的话,它将是空的。

将您的控制器置于登录中间件下,以确保您有一个已登录的用户,或者只需在访问用户id之前进行验证:

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

你不能得到它是什么意思?这是一个错误吗?还是什么都没有显示?@Samsquanch-yeah抛出一个错误。在MagazineController.php第54行中出现ErrorException:尝试获取非对象$user=Auth::user()的属性;echo$user->id;退出@德文格雷,刚刚试过,同样的错误。我想知道它是否仅在此控制器上工作。请尝试以下操作:
if(Auth::check()){echo“test”;exit;}
--如果您未获得“test”,则您未获得授权。类“App\Http\Controllers\API\V1\controller”未找到其完成。老兄,谢谢你们的快速反应。这是我的荣幸,兄弟。如果我的答案帮助你选择它作为公认的答案,问题是其他的,但我的代码结构只是这样。你能过来skype帮我吗?我检查了所有的东西。一切似乎都是这样的。我仍然不知道为什么它不起作用你能用skype上网吗?