0
我使用腳手架工具爲我的laravel項目生成身份驗證代碼。我創建了一個UserController來創建一個非常好的配置文件頁面,但是當我嘗試創建一個可以在Auth :: user()上使用的函數時,我得到一個錯誤Call to undefined method Illuminate\Database\Query\Builder::admin()
在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所以任何批評是有價值的,並希望!
噢好吧。實際上這是有道理的。 Durp。所以正確的方法是創建一些類型的幫助函數。我想爲我的視圖訪問isAdmin函數。 – Luca
是使用助手是定義自定義函數的正確方法。這裏有一個很好的[教程](http://www.tutorials.kode-blog.com/laravel-5-custom-helper)用於創建自定義幫手 – jonju