cakephp 2.4.6 и вывод массива - PullRequest
0 голосов
/ 06 июля 2018

Когда я пытаюсь выбрать имя производителя и загрузить изображение логотипа производителя, я хочу, чтобы имя изображения указывалось на имя производителя. Но имя файла всегда Array.

Может кто-нибудь проверить приведенный ниже код и сказать, что не так?

View.ctp

<fieldset>
                        <label>Manufacturer</label>
                        <?php


                        echo $this->Form->input('manufacturer_id', array('options' => $manufacturers));
                        ?>
                    </fieldset> 

controller.ctp

$manufacturer_name=$this->Manufacturer->findById($product_data['Product']['manufacturer_id']);
$new_image_name =  $manufacturer_name;

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Cakephp 2 возвращает результат запроса в виде массива [ModelName] .

Вы можете получить доступ к любому полю, используя [ModelName] [fieldName]

Array
(
    [ModelName] => Array
        (
            [id] => 83
            [field1] => value1
            [field2] => value2
            [field3] => value3
        )

    [AssociatedModelName] => Array
        (
            [id] => 1
            [field1] => value1
            [field2] => value2
            [field3] => value3
        )
)

Вы можете получить доступ к названию производителя как (при условии, что имя производителя хранится в столбце name )

$new_image_name =  $manufacturer_name['Manufacturer']['name'];

Для дальнейшего чтения: https://book.cakephp.org/2.0/en/models/retrieving-your-data.html

0 голосов
/ 06 июля 2018

Я не могу ответить конкретно, так как не знаю, что содержит объект Manufacturer, но ... попробуйте, хотя это немного глупо. В controller.ctp добавьте строку print_r:

$manufacturer_name=$this->Manufacturer->findById($product_data['Product']['manufacturer_id']);
$new_image_name =  $manufacturer_name;
print_r($manufacturer_name);

Он должен показать вам, как составляется переменная $manufacturer_name, а затем позволить вам выбрать то, что вы на самом деле ищете, что, я подозреваю, будет выглядеть примерно так:

$new_image_name =  $manufacturer_name['some_index'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...