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