【发布时间】:2016-06-30 13:45:58
【问题描述】:
这是我的控制器。
<?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
谁能帮帮我?
如果您愿意,请随时提出任何问题。
【问题讨论】:
-
你是什么意思你不能得到它?它会抛出错误吗?还是什么都没有显示?
-
@Samsquanch 是的,在 MagazineController.php 第 54 行抛出错误 .ErrorException:试图获取非对象的属性
-
$user = Auth::user();回声 $user->id;退出;
-
@DevinGray ,刚刚试了一下,同样的错误。我想知道它不能只在这个控制器上工作。
-
试试这个:
if (Auth::check()) { echo "test"; exit; }-- 如果你没有得到“测试”,那么你就没有被授权。
标签: php laravel laravel-5.2