小编And*_*tis的帖子

CakePHP 3:如何自动从leftJoin获取字段?

我有两张桌子。汽车和轮胎。轮胎可以属于汽车。我的表看起来像:

轮胎:

id  |  car_id
-------------
1   |  17
2   |  NULL
Run Code Online (Sandbox Code Playgroud)

汽车:

id  |  name
-------------
17  |  BMW
18  |  Mercedes
Run Code Online (Sandbox Code Playgroud)

根据我的理解,如果我想获得所有(!)轮胎(包括它们所属的汽车,如果有的话),则无法创建内部联接(因此,我不能使用Contain)。我需要使用左联接。但是那样我不知道如何自动选择台式车上的所有字段。

查询我:

$query = $this->Tires->find('all');
$query->leftJoin(
    ['Cars' => 'cars'],
    ['Cars.id = Tires.car_id']
);

// brings this SQL query
SELECT Tires.id AS `Tires__id`, Tires.car_id AS `Tires__car_id`
FROM tires Tires 
LEFT JOIN cars Cars ON Cars.id = Tires.car_id
Run Code Online (Sandbox Code Playgroud)

但是,如何自动从汽车中获取所有字段呢?

UPDATE burzum实际上给了我迅速想详细说明的解决方案,因为我认为蛋糕不能很好地解决它。

为了实现我试图做的事情,我需要添加以下代码:

$query
  // you need to pass each model you want to get fields for
  ->select($this->Tires)
  ->select($this->Tires->Cars);
Run Code Online (Sandbox Code Playgroud)

轮胎中的汽车如下所示: …

mysql cakephp left-join cakephp-3.0

4
推荐指数
1
解决办法
1139
查看次数

CakePHP:如果我在find中组合'fields'和'contains',我就得不到想要的结果了.有谁能解释为什么?

我有以下情况:作品有一个Image属于ImageGroup.

如果我这样做:

$works = $this->Work->find('all', array(
    'contain' => array(
        'PreviewImage' => array(
            'fields' => array('PreviewImage.id', 'PreviewImage.filename', 'PreviewImage.alt'),
            'ImageGroup' => array(
                'fields' => array('ImageGroup.id')
            )
        )
    )
));
Run Code Online (Sandbox Code Playgroud)

我会得到这个:

array(
(int) 0 => array(
    'Work' => array(
        'id' => '1',
        'title_us' => 'Work Title',
        'title_de' => 'Arbeit Titel',
        'alias' => 'work-title',
        'pdf_id' => '1',
        'date' => '2013-10-08 10:36:00',
        'title_graphic_us_id' => '1',
        'title_graphic_de_id' => '2',
        'body_us' => 'English Content',
        'body_de' => 'Deutscher Inhalt',
        'preview_image_id' => '3',
        'preview_us' => 'English Preview Text',
        'preview_de' …
Run Code Online (Sandbox Code Playgroud)

php cakephp containable cakephp-2.0

3
推荐指数
1
解决办法
4461
查看次数

PHP中的函数不返回我的数组的值,为什么?

我有一小段代码,我无法使其工作.

$dict = array('401003' => "Test")
function getID ($tempid) {
    $id = '<span title="'.$tempid.'">'.$dict[$tempid].'</span>';
    return $id;
}
echo getID('401003');
echo $dict['401003'];
Run Code Online (Sandbox Code Playgroud)

我希望两次得到'测试',但只有第二个回声让我回到'测试'.函数中的$ dict [$ tempid]似乎有些问题

你能帮帮我吗?

php arrays return echo

1
推荐指数
1
解决办法
740
查看次数