2016-08-02 11:29:32 2443次浏览 3条回答 0 悬赏 100 金钱
class TeacherModel extends \yii\db\ActiveRecord
{
    private $connection;

    public  static function getConnection()
    {   
        //$connection = \yii::$app->db;
        return $this->connection = \yii::$app->db;

    }

    public function getcourse()
    {
        $sql=<<<EOF
            select course_name,id from course
        EOF;
        //$connection=\yii::$app->db;   我不想用这种方法加载,想用类内的构造函数,但是不知道怎么写啊
        $command = $this->connection->createCommand($sql);
        $results = $command->queryAll();
        return $results;
    }
}

想用类内的构造函数,但是不知道怎么写啊

补充于 2016-08-02 11:30

这个界定符 我也是醉了

  • 回答于 2016-08-02 11:44 举报
    public static function (){
       $rtn=Course::find()->select(['course_name','id'])->all();
        return $rtn;
    }
    
    1 条回复
    回复于 2016-08-02 14:46 回复

    不是返回course id啊。这只是一个栗子,来说明怎么快速调用的连接的,

  • 回答于 2016-08-02 15:44 举报

    就像我上面那样,

    1 条回复
    回复于 2016-08-03 10:34 回复

    Course::find()->select(['course_name','id'])->all() 这个是你自己定义的查询生成器吗? 我想的是 在model类中定义一个数据库连接,这样每次在controller类中 new 的时候 就会自动带这么一个属性 之后我就可以 用$this->$connection 之类的直接调用了。

  • 回答于 2016-08-03 11:54 举报
     * $locator = new \yii\di\ServiceLocator;
     * $locator->setComponents([
     *     'db' => [
     *         'class' => 'yii\db\Connection',
     *         'dsn' => 'sqlite:path/to/file.db',
     *     ],
     *     'cache' => [
     *         'class' => 'yii\caching\DbCache',
     *         'db' => 'db',
     *     ],
     * ]);
     *
     * $db = $locator->get('db');  // or $locator->db
    

    yii2默认的db连接是读取的数据库配置 如果不想用的话 你可以写原生的mysql_connect() 但是感觉没必要 它自带的就很好用

您需要登录后才可以回答。登录 | 立即注册
苹果喽
总监

苹果喽

注册时间:2016-10-31
最后登录:2022-03-13
在线时长:6小时10分
  • 粉丝9
  • 金钱2825
  • 威望10
  • 积分2985

热门问题