私には 2 つのオブジェクトがあり、ファインダー関数の動作方法 (2 回呼び出す必要があります... 1 つは構成キー、値、つまり非多言語のものを取得します。2 回目の呼び出しで多言語のものを取得します) は、次のようになります。
[config] => Array
(
[cfg] => Config_Model Object
(
[id] => 2
[key] => system.default.main_color
[value] => #FF7C11
[deleted] => 0
)
[help] => Config_Model Object
(
[id] =>
[key] =>
[value] =>
[id_config] => 2
[name] => Hauptfarbe
[help] => Die Hauptfarbe Ihres CIs. Der Adminbereich erscheint in dieser Farbe.
[id_lang] => 1
)
)
この 2 つのオブジェクトを 1 つに結合したいと考えています。ものを取得するコードは次のようになります。
public static function get($key)
{
$config['cfg'] = self::find(array('key' => $key), TRUE);
$config['help'] = self::findInTable(array(
'id_lang' => Language_Model::getDefaultLanguage(),
'id_config' => $config['cfg']->getId()
), self::dbTranslationTable, TRUE);
return $config;
// return (object) array_merge((array) $config['cfg'], (array) $config['help']);
}
コメント付きの return コマンドで、array_merge() を使用してみたことがわかります。それに関する問題は、[help] からの空の属性が [cfg] からの属性をオーバーライドするため、再び空になることです。
[config] => stdClass Object
(
[id] =>
[key] =>
[value] =>
[deleted] => 0
[id_config] => 2
[name] => Hauptfarbe
[help] => Die Hauptfarbe Ihres CIs. Der Adminbereich erscheint in dieser Farbe.
[id_lang] => 1
)
一方、次のようになります。
[config] => stdClass Object
(
[id] => 2
[key] => system.defalult.main_color
[value] => #FF7C11
[deleted] => 0
[id_config] => 2
[name] => Hauptfarbe
[help] => Die Hauptfarbe Ihres CIs. Der Adminbereich erscheint in dieser Farbe.
[id_lang] => 1
)
さらに詳しい情報が必要な場合は、お知らせください。