首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fuelphp油管理模板,model_user,find_by_username函数

Fuelphp油管理模板,model_user,find_by_username函数
EN

Stack Overflow用户
提问于 2014-05-01 01:36:48
回答 1查看 646关注 0票数 0

我已经使用石油为我的网站生成了一个管理面板。我在我的数据库中有所有的表,网站正在工作,我已经启用了orm和auth包,但我在登录过程中有一个问题。

有问题的控制器/admin.php在这里:

代码语言:javascript
复制
            if ($val->run())
        {
            $auth = Auth::instance();

            // check the credentials. This assumes that you have the previous table created
            if (Auth::check() or $auth->login(Input::post('email'), Input::post('password')))
            {
                // credentials ok, go right in
                if (Config::get('auth.driver', 'Simpleauth') == 'Ormauth')
                {
                    $current_user = Model\Auth_User::find_by_username(Auth::get_screen_name());
                }
                else
                {
                    $current_user = Model_User::find_by_username(Auth::get_screen_name());
                }


                Session::set_flash('success', e('Welcome, '.$current_user->username));
                Response::redirect('admin');
            }
            else
            {
                $this->template->set_global('login_error', 'Fail');
            }
        }

调用中的函数find_by_username

代码语言:javascript
复制
  $current_user = Model_User::find_by_username(Auth::get_screen_name());

没有实现,我假设它必须在模型/用户中,如下所示:

代码语言:javascript
复制
class Model_User extends \Orm\Model
{
.......

    public static function find_by_username($username_given)
    {
        return Model_User::query()->where('username',$username_given)->get();

        //$escaped_username = \Fuel\Core\DB::escape($username_given);
        //return \Fuel\Core\DB::query("SELECT username FROM users WHERE username =$escaped_username")->execute();
    }
}

现在,这将返回一个Orm/Model_User对象,如下所示:

代码语言:javascript
复制
object(Model_User)#37 (11) {
   ["_is_new":protected]=>
   bool(false)
   ["_frozen":protected]=>
   bool(false)
   ["_sanitization_enabled":protected]=>
   bool(false)
   ["_data":protected]=>
   array(10) {
     ["id"]=>
     string(1) "1"
     ["username"]=>
     string(5) "admin"
     ["password"]=>
     string(44) "UberSafePass"
     ["group"]=>
     string(3) "100"
     ["email"]=>
     string(16) "email@domain.com"
     ["last_login"]=>
     string(10) "1398875694"
     ["login_hash"]=>
     string(40) "9998e768da41821ae4c401359e797e1d96edfdb3"
     ["profile_fields"]=>
     string(6) "a:0:{}"
     ["created_at"]=>
     string(10) "1398868638"
     ["updated_at"]=>
     string(1) "0"
   }
   ["_custom_data":protected]=>
   array(0) {
   }
   ["_original":protected]=>
   array(10) {
     ["id"]=>
     string(1) "1"
     ["username"]=>
     string(5) "admin"
     ["password"]=>
     string(44) "VerySecretPassword"
     ["group"]=>
     string(3) "100"
     ["email"]=>
     string(16) "email@domain.com"
     ["last_login"]=>
     string(10) "1398875694"
     ["login_hash"]=>
     string(40) "9998e768da41821ae4c401359e797e1d96edfdb3"
     ["profile_fields"]=>
     string(6) "a:0:{}"
     ["created_at"]=>
     string(10) "1398868638"
     ["updated_at"]=>
     string(1) "0"
   }
   ["_data_relations":protected]=>
   array(0) {
   }
   ["_original_relations":protected]=>
   array(0) {
   }
   ["_reset_relations":protected]=>
   array(0) {
   }
   ["_view":protected]=>
   NULL
   ["_iterable":protected]=>
   array(0) {
   }
 }

但在controller/admin和代码的其他部分中,它的访问方式如下:

代码语言:javascript
复制
Session::set_flash('success', e('Welcome, '.$current_user->username));

很抱歉,如果这是一个愚蠢的问题,但是因为Orm查询方法返回我的数据,就像我展示的那样,然后油生成的控制器要求像这样访问它们,要么我做了什么愚蠢的事情,要么我没有看到什么。我必须补充说,我使用的是Fuelphp 1.7.1谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-05-01 10:13:41

您可以生成Model_User类:$ oil r fromdb:model users --no-migration

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23394595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档