2

あいまいなタイトルで申し訳ありませんが、私が投稿していることをより反映するように編集したい場合は、編集してください. これが状況です。私は3つのテーブルを持っています:

サポート:

ID | contact_id | タイトル | 問題 | 等

サポートログイン:

ID | contact_id | ログイン | パス | 等

コンタクト:

ID | ファーストネーム | 姓名 | 電子メール | 等

サポート Bean を問題なく読み込んでおり、連絡先情報にアクセスしています。

$support=R::load('support',1);
echo $support->contact->first_name;

同様に、supportlogin 情報をエコーし​​たい:

echo $support->contact->ownSupportlogin->login;

これは可能ですか、私は正しい方法でやっていますか? 次の方法を試しましたが、成功しませんでした。

echo $support->contact->supportlogin->login;
echo $support->contact->ownSupportlogin->login;
echo $support->contact->ownSupportlogin[0]->login;

編集:詳細情報 私がprint_r($support->contact)行い、データを与えられました:

RedBean_OODBBean Object
(
    [null:RedBean_OODBBean:private] => 
    [properties:RedBean_OODBBean:private] => Array
        (
            [id] => 109
            [phone] => 1234580970
            [first_name] => Tim
            [last_name] => Withers
        )

    [__info:RedBean_OODBBean:private] => Array
        (
            [type] => contact
            [sys.id] => id
            [tainted] => 
        )

    [beanHelper:RedBean_OODBBean:private] => RedBean_BeanHelperFacade Object
        (
        )

    [fetchType:RedBean_OODBBean:private] => 
)

そして、私はやったprint_r($support->contact->ownSupportlogin)、これが現れた:

Array
(
    [13] => RedBean_OODBBean Object
        (
            [null:RedBean_OODBBean:private] => 
            [properties:RedBean_OODBBean:private] => Array
                (
                    [id] => 13
                    [link] => fecd4ef67e8c789efa1792f9ee0efff4
                    [login] => 
                    [password] => 
                    [receiveemails] => 1
                    [contact_id] => 109
                    [role] => 1
                )

            [__info:RedBean_OODBBean:private] => Array
                (
                    [type] => supportlogin
                    [sys.id] => id
                    [tainted] => 
                )

            [beanHelper:RedBean_OODBBean:private] => RedBean_BeanHelperFacade Object
                (
                )

            [fetchType:RedBean_OODBBean:private] => 
        )

)

: を使用してアクセスできますecho $support->contact->ownSupportlogin[13]->login;が、動的に行うと問題が発生するようです....

4

1 に答える 1

1

それを理解し、他の誰かが同様の問題を抱えている場合に備えてそのままにしておきます:

これは、1 対 1 の関係がある場合にのみ機能します。RedbeanownSupportloginは、連絡先に関連するすべての supportlogin 行の配列として を設定します。1 つのテーブルが多数の子テーブルを持つことができる場合、その配列をループして、必要なデータを引き出す必要があります。1:1 の関係であれば、PHP を使用reset()して配列の最初の要素のデータにアクセスできます。

echo reset($support->contact->ownSupporlogin)->login;
于 2012-07-31T20:51:06.207 に答える