代码之家  ›  专栏  ›  技术社区  ›  allyourcode

CakePHP中model->alias和model->name有什么区别?

  •  6
  • allyourcode  · 技术社区  · 17 年前

    alias name 都是蛋糕模型中的属性。他们似乎是相似的,但既然两者都存在,就必须有区别。这是怎么一回事?

    4 回复  |  直到 12 年前
        1
  •  5
  •   MSR    17 年前

    我猜是这样的,但是当您在一个模型和另一个模型之间建立了关系,并且为关联的模型指定了一个与类不相等的名称时,别名可能是赋值。

    例如:

    $hasMany = array('UserNew' => array('className' => 'User'));
    

    在这种情况下,您使用的模型实际上称为User,但您将其引用为“UserNew”。

        2
  •  0
  •   brettkelly    17 年前

    这是cake进行连接时使用的表别名的集合。从 cake/lib/model/model_php5.php :

    /**
     * Alias table names for model, for use in SQL JOIN statements.
     *
     * @var array
     * @access public
     */
        var $alias = array();
    
        3
  •  0
  •   Charles Harmon    12 年前

    如果要临时更改模型中的表,并且要从中重写CakePHP魔术,请将$this->alias更改为所需的名称。$this->name似乎在构造函数中使用,必须在该进程的某个位置生成别名。仅在要重写的方法中更改$this->名称是不够的。您必须更改$this->别名并执行方法setSource(),如下所示:

    function my_override_method(){
      $this->setSource('new_db_table_name_here');
      $this->alias = "NewTable";
    }
    
        4
  •  0
  •   Community Mohan Dere    9 年前
    • name :模型的名称,例如 Post .
    • alias :模型的别名,用于在 ClassRegistry ,例如 ParentThread .

    Model::__construct( )

    看一看 this 还有一个问题。