0

Codeigniter フレームワークで新しい問題に直面しています。彼女は私のアウトプットです

配列
(
    [id] => 2
    [ファーストネーム] => マルフ
    [姓] => イフテカール
    [ナメクジ] =>
    [メール] => support@russelhost.com
    [email_subscribe] => 1
    [自分] =>
    [電話] => 01767820010
    [会社] => ラッセル ホスト
    [デフォルト請求先住所] =>
    [デフォルトの配送先住所] =>
    [ship_to_bill_address] => true
    [パスワード] => 0689d59aa30bdca7207db3d449255650
    [アクティブ] => 1
    [グループ ID] => 1
    【確定】=>0
    [グループ割引式] => - 0
    [期限切れ] => 1380390903
)
PHP エラーが発生しました

重大度: 通知

メッセージ: 非オブジェクトのプロパティを取得しようとしています

ファイル名: controllers/secure.php

ライン番号: 46
アビダ・スルタナ

コントローラーはこちら

`$`email = `$`this->input->post('email');
`$`password = `$`this->input->post('password');
`$`remember = `$`this->input->post('remember');
`$`redirect = `$`this->input->post('redirect');
`$`login = `$`this->Customer_model->login(`$`email, `$`password, `$`remember);
   echo '/pre>-----';
   print_r(`$`login);
   echo 'abida Sultana'.`$`login->last_name; --------------------ライン番号: 46
   出口();

モデルは

function login(`$`email, `$`password, `$`remember = false) {
    `$`this->db->select('*');
    `$`this->db->where('email', `$`email);
    $`this->db->where('active', 1);
    `$`this->db->where('password', md5(`$`password));
    `$`this->db->limit(1);
    `$`result = `$`this->db->get('customers');
    `$`customer = `$`result->row_array();

    if (`$`顧客) {

        // 顧客の住所を取得する
        `$`this->db->where(array('customer_id' => `$`customer['id'], 'id' => `$`customer['default_billing_address']));
        `$`address = `$`this->db->get('customers_address_bank')->row_array();
        if (`$`アドレス) {
            $fields = unserialize($address['field_data']);
            $customer['bill_address'] = $fields;
            $customer['bill_address']['id'] = $address['id']; // 今後の参照用にアドレス ID を保存します
        }

        $this->db->where(array('customer_id' => $customer['id'], 'id' => $customer['default_shipping_address']));
        $address = $this->db->get('customers_address_bank')->row_array();
        if ($アドレス) {
            $fields = unserialize($address['field_data']);
            $customer['ship_address'] = $fields;
            $customer['ship_address']['id'] = $address['id'];
        } そうしないと {
            $customer['ship_to_bill_address'] = 'true';
        }


        // グループ割引を設定する
        if ($customer['group_id'] != 0) {
            $group = $this->get_group($customer['group_id']);
            if ($group) { // グループが存在しない可能性があります
                if ($group->discount_type == "固定") {
                    $customer['group_discount_formula'] = "-" . $group->割引;
                } そうしないと {
                    $percent = (100 - (float) $group->discount) / 100;
                    $customer['group_discount_formula'] = '* (' . $percent . ')';
                }
            }
        }

        if (!$remember) {
            $customer['expire'] = time() + $this->session_expire;
        } そうしないと {
            $customer['expire'] = false;
        }

        // 顧客をカートに入れる
        $this->go_cart->save_customer($customer);


        $顧客を返します。
    } そうしないと {
        false を返します。
    }
}
4

2 に答える 2

2

変数に対して avar_dumplogin実行すると、それがオブジェクトではなく配列であることがわかるため、オブジェクトのように扱うことはできません。

モデルに移動して、次を変更します。

$customer = $result->row_array();

することが:

$customer['result'] = $result->row_array();

次に、46行目で次のように使用します。

$login['result']->last_name;

なぜこれが起こっているのですか:

$customer最初にオブジェクトとして定義したためです。$customer['something']また、割り当てパターンを使用して、後でモデル内で配列として再定義しました。したがって、配列またはオブジェクトのいずれかです。

于 2013-09-29T09:53:09.107 に答える
0
 //You used this code because row_array return array not object
 `$`login["result"] = `$`this->Customer_model->login(`$`email, `$`password, `$`remember);
  echo  $login['result']["last_name"];
于 2013-10-01T10:01:30.980 に答える