首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cakePHP查找(“列表”)返回空数组

cakePHP查找(“列表”)返回空数组
EN

Stack Overflow用户
提问于 2015-07-30 20:48:16
回答 2查看 1.3K关注 0票数 3

我试图通过使用外键UserID来减少用户列表。在控制器中,我找到了(“列表”)。当我在控制器中调试$this->Order->SalesAgent时,它会打印用户对象。但是,在视图页中,当我调试$this->Order->SalesAgent->find("list")的结果时,会显示和空数组。

以下是主计长:

代码语言:javascript
复制
    public function edit_sales_agent ($id=null) {
        debug($this->Order->SalesAgent);
        $this->set("users",$this->Order->SalesAgent->find("list"));
        debug($this->users);
    }

以下是观点:

代码语言:javascript
复制
debug($users);
echo $this->Form->create("Order");
    echo $this->Form->input("UserID");

$usersfind("list")的结果

有人能帮我吗?谢谢!

协会:

代码语言:javascript
复制
class Order extends AppModel{
    public $useTable = 'CustomerOrder';
    public $primaryKey = 'OrderID';
    **public $belongsTo = array(
        "SalesAgent"=>array(
            "className"=>"User",
            "foreignKey"=>"UserID"**
        ),

销售代理模型:

代码语言:javascript
复制
<?php
class User extends AppModel{
    public $useTable = 'UserAccount';
    public $primaryKey = 'UserID';
    public $order = array(
        "User.LastName"=>"asc",
        "User.FirstName"=>"asc"
    );
    public function __construct($id = false, $table = null, $ds = null) {
        parent::__construct($id, $table, $ds);
        $this->virtualFields['full_name'] = sprintf("(%s.FirstName+' '+%s.LastName)", $this->alias, $this->alias);
    }
    public function login($data){
        return $this->find("first",array("conditions"=>$data['User']));
    }
}

更新:

好吧,所以我知道问题出在哪里,但我不知道怎么解决。当我键入find(list)时,它运行的查询如下:

选择SalesAgent.UserID作为SalesAgent__,从UserAccount AS SalesAgent中选择SalesAgent.UserID作为SalesAgent__1,其中1=1阶由User.LastName asc,User.FirstName asc

THis是它提出的错误:

SQL错误:列前缀'User‘与查询中使用的表名或别名不匹配。APP/Model/Datasource/Mssql.php,第749行

SalesAgent使用类用户,它使用表UserAccount。

EN

Stack Overflow用户

回答已采纳

发布于 2015-08-04 15:01:00

我想通了。

问题是查询将运行:

选择SalesAgent.UserID作为SalesAgent__,从UserAccount AS SalesAgent中选择SalesAgent.UserID作为SalesAgent__1,其中1=1阶由User.LastName asc,User.FirstName asc

它将由User.LastName和User.FirstName订购。

用户不匹配表名或别名,所以我必须在蛋糕中指定订单。

代码语言:javascript
复制
array(
   "fields"=>array("SalesAgent.username"), 
'   "order"=>["SalesAgent.UserID ASC"] 
)
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31733731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档