CakePhp Afterfind () помочь
-
26-09-2019 - |
Вопрос
У меня есть результат поиска, как это в массиве
Array
(
[0] => Array
(
[StatusMessage] => Array
(
[id] => 1
[pid] => 0
[message] => First Status Message
[item_id] => 1
[commenters_item_id] => 2
[created] => 2010-10-26 02:09:05
[modified] => 2010-10-26 02:09:09
)
[Item] => Array
(
[id] => 1
[module_id] => 1
[item_id] => 1
[User] => Array
(
[id] => 1
[first_name] => Harsha
[last_name] => Vantagudi
[username] => harshamv
[file] =>
)
)
[StatusMessageReply] => Array
(
[0] => Array
(
[id] => 2
[pid] => 1
[message] => Second Status Message
[item_id] => 1
[commenters_item_id] => 1
[created] => 2010-10-26 02:09:05
[modified] => 2010-10-26 02:09:09
[Item] => Array
(
[id] => 1
[module_id] => 1
[item_id] => 1
[User] => Array
(
[id] => 1
[first_name] => Harsha
[last_name] => Vantagudi
[username] => harshamv
[file] =>
)
)
)
)
)
)
Я хочу изменить его, чтобы сделать это выглядеть немного красивее, удалив определенные вещи в массиве
Array
(
[0] => Array
(
[StatusMessage] => Array
(
[id] => 1
[pid] => 0
[message] => First Status Message
[item_id] => 1
[commenters_item_id] => 2
[created] => 2010-10-26 02:09:05
[modified] => 2010-10-26 02:09:09
)
[User] => Array
(
[id] => 1
[first_name] => Harsha
[last_name] => Vantagudi
[username] => harshamv
[file] =>
)
[StatusMessageReply] => Array
(
[0] => Array
(
[id] => 2
[pid] => 1
[message] => Second Status Message
[item_id] => 1
[commenters_item_id] => 1
[created] => 2010-10-26 02:09:05
[modified] => 2010-10-26 02:09:09
[User] => Array
(
[id] => 1
[first_name] => Harsha
[last_name] => Vantagudi
[username] => harshamv
[file] =>
)
)
)
)
)
Принципиально удалить деталь элемента и сдвиньте пользователь на уровне
Решение
я бы сказал не. Отказ Никто не собирается увидеть или заботиться об этом, кроме вас. И нет никакой реальной выгоды для изменения внутреннего формата данных моделей. Напротив, это может вызвать только проблемы. Сохраняйте ваши внутренние форматы данных согласуются!
Доступте ли вы доступ к пользовательской информации, используя $statusMessage['Item']['User']
или $statusMessage['User']
Действительно не делает так много разницы. Если вы настаиваете на этом, хотя я бы предложил вам присоединиться то users
стол непосредственно к status_messages
стол через то items
Таблица в запросе, чтобы отказаться от дополнительного шага получения элемента, а торт автоматически отформатирует результаты, как вы хотите.
Другие советы
Если вы хотите ограничить связанные таблицы и или поля, которые возвращаются, вы должны посмотреть на Containable
. Отказ Когда у вас есть большая куча неинтересных вещей, вернулась, что вам не нужно, вы немного облегчите обработку, «содержащие», к тому, что вы хотите.
Но как говорит Окадзе, не Обрезать его исключительно для эстетики.