2016-05-03 10:54:04 8427次浏览 1条回答 0 悬赏 30 金钱

刚研究了一会权威手册 看到了覆写数据库表名的方法 想试试,结果试了好久都失败,就是报错,请问数据库表名覆写该修改哪里。求指教。yii\db\ActiveRecord::tableName()

最佳答案

  • MilkProtiem 发布于 2016-05-03 12:17 举报

    代码在那里。。。。。。。。

    7 条回复
    回复于 2016-05-03 13:51 回复

    手册没写代码具体写在哪 我写在了model层 手册原话是这么说的“补充:如果类名和数据表名不能直接对应,可以覆写 yii\db\ActiveRecord::tableName() 方法去显式指定相关表名。”

    回复于 2016-05-04 14:15 回复

    我是说你的代码。。。。。。。。。。。。

    回复于 2016-05-04 15:24 回复

    在这里呢。等会我给你复制。

    回复于 2016-05-04 15:30 回复

    文件模型层的Country.php。

    <?php
    namespace app\models;
    use yii\db\ActiveRecord
         class Country extends  ActiveRecord{
    }
    ?>
    

    完活 正常这个不是默认链接的country这个表么。 我想链接Info表 就是这个意思 我不知道该咋办 我知道在模型层里写。我无论咋写都不对

    回复于 2016-05-04 18:00 回复

    在你模型增加下面的方法

        class Country extends  ActiveRecord{
        /**
         * @inheritdoc
         */
        public static function tableName()
        {
            return '{{%info}}';//写你表名就是了{{%XXX}}是用表前辍,没有设置可以直接写表名比如 “info”
        }
        }
    

    如果想设置表前辍,可以设置Connection组件的tablePrefix属性。怎样设置自己看手册。。。方法有n种,ps:connection组件其实有个默认id就是DB。。。

    你基础不怎样。。。目测覆写和重载这种基本的东西你都不知道。。。

    回复于 2016-05-05 08:57 回复

    我发0.0

    回复于 2016-05-05 09:11 回复

    好用 我之前在public后面没有加static 我无论如何也想不到要加static

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
小白小
主管

小白小

注册时间:2016-04-22
最后登录:2021-02-18
在线时长:16小时42分
  • 粉丝7
  • 金钱310
  • 威望30
  • 积分770

热门问题