【问题标题】:Fuelphp oil admin template, model_user, find_by_username functionFuelphp石油管理模板,model_user,find_by_username函数
【发布时间】:2014-04-30 17:36:48
【问题描述】:

我使用 oil 为我的网站生成了一个管理面板。 我的数据库中有所有表,网站正在运行,我启用了 orm 和 auth 包,但在登录过程中出现问题。

有问题的controller/admin.php就在此时:

            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

  $current_user = Model_User::find_by_username(Auth::get_screen_name());

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

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 对象的东西:

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) {
   }
 }

但在控制器/管理员和代码的其他一些部分中,它的访问方式如下:

Session::set_flash('success', e('Welcome, '.$current_user->username));

对不起,如果这是一个愚蠢的问题,但是由于 Orm 查询方法会返回我的数据,正如我向您展示的那样,然后油生成控制器要求像那样访问它们,要么我做了一些愚蠢的事情,要么我什么也没看到. 我必须补充一点,我使用的是 Fuelphp 1.7.1 谢谢!

【问题讨论】:

    标签: orm model admin crud fuelphp


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多