kohana フレームワークでアプリケーションを作成していますが、含まれている認証、データベース、および orm kohana モジュールを使用しているユーザー ログイン方法に問題があります。ログインメソッドで sqlite データベースに対して実行された 3 つのクエリがあることに気付きました。
SELECT user.* FROM users AS user WHERE username = 'dejwid' LIMIT 1
SELECT role.* FROM roles AS role WHERE name = 'login' LIMIT 1
SELECT COUNT(*) AS records_found FROM WHERE user_id = '1' AND role_id IN ('1')
残念ながら、FROMの後のTABLENAMEが欠落しているため、最後のクエリは適切に構築されたクエリではありません(私が思うに)。これは私のモデルで問題になる可能性があるため、モデルのコードを以下に貼り付けます。
APP_PATH/クラス/モデル/user.php:
class Model_User extends ORM
{
protected $_table_name = 'users';
protected $_table_columns = array('user_id','email','username','password','logins','last_login');
protected $_primary_key = 'user_id';
protected $_has_many = array('roles'=>array());
public function unique_key($id = NULL){
if(!empty($id) && is_string($id) && !ctype_digit($id)){
return 'username';
}
return parent::unique_key($id);
}
}
APP_PATH/classes/model/role.php :
class Model_Role extends ORM
{
protected $_table_name = 'roles';
protected $_table_columns = array('id','name','description');
protected $_primary_key = 'id';
protected $_belongs_to = array(
'users'=>array(),
);
public function unique_key($id = NULL){
if(!empty($id) && is_string($id) && !ctype_digit($id)){
return 'name';
}
return parent::unique_key($id);
}
}
それが役立つ場合は、このチュートリアルに従おうとしたことを追加したいと思います。
私の質問は: なぜtablename
最後のクエリにないのですか?