필자는 래버 프로젝트에 대한 인증 코드를 생성하기 위해 스캐 폴딩 도구를 사용했습니다. 나는 위대한 작품을 프로필 페이지를 만들기 위해 UserController을 생성하지만 인증 : 사용자에 사용할 수있는 기능을 만들려고 할 때() 오류가 발생합니다 Call to undefined method Illuminate\Database\Query\Builder::admin()
Auth :: user()에서 컨트롤러 기능에 액세스합니다.
왜에없는 관리자 기능에 액세스 할 Auth :: user()? 내 UserController를 확장하지 않습니까? 아니면 내가 모델과 혼합하고 있습니까? 내 모델이 관리자인지 확인하기 좋은 모델입니까?
은 여기 내 사용자 컨트롤러
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
use App\Http\Requests;
class UserController extends Controller
{
/**
* Create a new user controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* @return View with user data
*/
public function index() {
$user = Auth::user();
return view('users.index', compact('user'));
}
/**
* @return bool
* Returns bool if the user is an admin.
*/
public function admin() {
$user = Auth::user();
$authorized_users = [
'[email protected]'
];
return array_key_exists($user->email, $authorized_users);
}
}
내가 다른 경로 제어 기능
public function index() {
return Auth::user()->admin();
}
내가 laravel 상당히 새로운 오전 PHP 그래서 어떤 비판은 가치 있고 원입니다 그것을 호출 오전!
오케이. 그것은 실제로 의미가 있습니다. 더럽. 올바른 방법은 어떤 유형의 도우미 함수를 만드는 것입니다. 내보기에 대해 isAdmin 함수에 액세스하려고합니다. – Luca
예 헬퍼를 사용하면 맞춤 함수를 정의하는 올바른 방법입니다. 커스텀 도우미를 만들기위한 좋은 튜토리얼 (http://www.tutorials.kode-blog.com/laravel-5-custom-helper) – jonju