【问题标题】:Calling one model from another in CakePHP在 CakePHP 中从另一个模型调用一个模型
【发布时间】:2011-10-10 11:28:26
【问题描述】:

我有一个用户模型,另一个是访问代码模型。在注册期间,我使用的用户模型为表单数据设置了一些验证规则。

在注册页面上,我有一个不属于用户模型的字段,即访问代码字段。我想在用户模型中验证这个字段来检查 用户输入的代码是否存在于 accesscode 表中,并且还想检查第三个模型,即该访问代码的 useraccesscode。

我该怎么做?我正在使用 CakePHP v1.2。

谢谢

【问题讨论】:

    标签: cakephp cakephp-model


    【解决方案1】:

    下面的例子可能有用:

    App::import('Model', 'Student');
    $Student = new Student();
    $dataArray =  $Student->getDataArray("name like '%".$keword."%'");
    

    【讨论】:

    • 坏主意。永远不要使用 App::import 和 new - ClassRegistry 用于模型。
    • 在给出鼓励 SQL 注入的示例时又是一个坏主意
    【解决方案2】:
    $validated = $this->User->Accesscode->find('list', array('conditions' => array('Accesscode.name' => $this->data['User']['accesscode'])));
    
    if(count($validated) > 0)
         //means that accesscode supplied in the form matches some accesscode in the database
    

    【讨论】:

    • 谢谢,但我想在模型上实现它你认为这将在模型中工作吗
    • 此解决方案无需在模型上实施即可工作。
    • +1 这绝对是最正确的“蛋糕”做事方式。
    【解决方案3】:
    App::import('Model', 'MyModel');
    

    【讨论】:

      【解决方案4】:

      您可以使用以下两种方法之一从任何模型/控制器中创建其他模型的实例:

      如果使用 Cake 1.2:

      App::import('model','Attribute');
      $attr = new Attribute();
      

      如果使用 Cake 1.1:

      loadModel('Attribute');
      $attr = new Attribute();
      

      【讨论】:

        猜你喜欢
        • 2012-02-27
        • 2012-03-30
        • 1970-01-01
        • 2011-05-13
        • 1970-01-01
        • 2014-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多