0
用戶模型:Zizaco委託 'hasRole' Laravel控制器內不工作
<?php
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
use Zizaco\Entrust\HasRole;
class User extends Eloquent implements UserInterface, RemindableInterface {
use HasRole;
角色模型:
<?php
use Zizaco\Entrust\EntrustRole;
class Role extends EntrustRole
{
}
權限模型:
<?php
use Zizaco\Entrust\EntrustPermission;
class Permission extends EntrustPermission
{
}
用戶控制器:
public function postSignin(){
if (Auth::attempt(array('email'=>Input::get('email'),
'password'=>Input::get('password')))) {
$id = Auth::user()->id;
$user = User::where('id','=',$id);
$firstname = Auth::user()->firstname;
if ($user->hasRole("User_Not_Approved")) {
return Redirect::intended('/users/dashboard');
}
錯誤消息:
BadMethodCallException 調用未定義的方法照亮\數據庫\查詢\生成器:: hasRole()
IF語句運行時給出錯誤信息,而用戶正在登錄。我遵循了Entrust的指示,但我爲什麼沒有采用該方法而感到不知所措。
任何幫助將非常感激!
要澄清, - >在哪裏返回一個查詢生成器對象,它期望被鏈接到其他生成器方法,如更多的where(),sum()等等等。您必須「完成」您的查詢要麼 - > get()返回一個集合,要麼 - > first()(它會返回集合中的第一個結果)。否則 - > find()會跳過所有這些,並且是通過它的主鍵獲取某些東西的最簡單方法:) – John
謝謝John,那是最有幫助的。你比Laravel指南更清楚地解釋它!它現在可以工作。非常感謝。 – Ben
沒問題,很高興我能幫到你!我同意Laravel的文檔最終給我留下了更多的問題,而不是答案。它花了一段時間來玩弄正確的東西。堅持下去,事情就會變得更有意義! – John