【问题标题】:Generate static typing of Column name in yii active record在 yii 活动记录中生成列名的静态类型
【发布时间】:2017-01-17 04:11:07
【问题描述】:

我有一个 yii 基本应用,其中 test 是数据库表 id,name

和模型

class Test extends ActiveRecord
{

    //public $name;
    //public $id;

    public static function tableName()
    {
        return '{{test}}';
    }
}

当我在 Test 类中声明一个 $name/$id 字段时,它没有绑定到数据库列名??

有没有办法声明 public $name; 并通过静态类型获取数据/或设置数据?

像声明 public $name; 并在控制器中

    $test=new Test();

    $test->name='test2';
    $test->save(); //not working

【问题讨论】:

  • 它应该可以工作,不工作是什么意思?
  • 如果你取消注释 //public $name;这条线不工作!!!!
  • 是name和id是表列字段

标签: php yii yii2 yii2-basic-app


【解决方案1】:

不得声明与映射数据库列同名的 ActiveRecord 类的属性。

映射的属性是自动获取的,您可以使用标准的 getter 和 setter 访问它们。

如果您在示例中声明属性,则不会从数据库中获取属性值。

【讨论】:

  • 那如何让我的专栏name静态类型?
  • 所有映射的 DB 列都是基于 DB 模式转换为适当类型的公共属性。你想达到什么目标?也许我可以帮忙。
  • 通过使用 . .说我声明测试对象t.so t->name =“set data”?并且名称是模型中固定且可读的代码
  • 如果您正在寻找打字提示,您可以在类描述中声明 phpDoc @property <type> $name,所有好的 IDE 都可以阅读这些。至于设置映射属性,如$obj->name = 'something' - 它应该可以正常工作。
猜你喜欢
  • 1970-01-01
  • 2012-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-29
相关资源
最近更新 更多