Code Igniter フレームワークを使用してアプリケーションを構築しています。このフレームワークでは、必要なコントローラーにロードするさまざまなライブラリを構築しています。
複数のライブラリを「ホーム」コントローラーにロードしようとすると、次のメッセージが表示されます。
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Home::$messaging
Filename: controllers/home.php
Line Number: 73
Fatal error: Call to a member function getMessages() on a non-object in /home/totalcar/public_html/application/controllers/home.php on line 73
複数のライブラリを問題なくロードする前にコントローラーを持っていたので、これまでこのエラーに遭遇したことはありません。メッセージング ライブラリが存在しないか、読み込まれていないと思われます。クラス宣言と同様に、ライブラリのファイル名の最初の文字が大文字であることを確認しましたが、これは違いがないようです。
以下に示すように、ライブラリを個別にロードします。(ここで読みやすくするために、コントローラーから多くの無関係なコードを削除したことに注意してください)
public function index() {
...
//Load Helpers
$this->load->helper('menu');
$this->load->helper('layout');
//Load Libraries
$this->load->library('pusher');
$this->load->library('test');
//Load User Details
$data['userid'] = $this->session->userdata('userid');
$data['modules'] = getModules($this->layout_model, $this->socialmedia_model);
//Build Menu
$data['menuItems'] = buildMenu($this->session->userdata('user_group_id'), $this->config);
$data['firstName'] = $this->session->userdata('firstName');
//Unread Messages
$options = array(
'userId' => $data['userid'],
'opened' => 0
);
$this->load->library('messaging', $options);
$data['unreadMessages'] = $this->messaging->getMessages();
$data['mailIcon'] = (empty($data['unreadMessages'])) ? "mailButton.png" : "mailButtonUnread.png";
誰でもここでガイダンスを提供できますか? ありがとう
編集:これが私のライブラリコードです:
<?php if(!defined('BASEPATH')) exit('No direct script access allowed');
class Messaging extends CI_Controller {
private $options;
private $unreadMessages;
public $mailIcon;
function __construct($options) {
parent::__construct();
$this->load->model('messaging_model');
$this->load->model('staff_model');
$this->options = $options;
}
function getMessages() {
$unreadMessages = $this->messaging_model->getMessages($this->options);
$this->unreadMessagesReturn = array();
$mailIcon = (empty($unreadMessages)) ? "mailButton.png" : "mailButtonUnread.png";
if(!empty($unreadMessages)) {
foreach($unreadMessages as $message) {
$fromUserDetails = $this->staff_model->getStaffMemberDetails($message['from_id']);
if((isset($fromUserDetails['profile_image_small'])) && $fromUserDetails['profile_image_small'] != "") {
$profileImageSmall = $this->config->base_url() . "images/profileImages/" . $fromUserDetails['profile_image_small'];
} else {
$profileImageSmall = $this->config->base_url() . "images/noImage.png";
}
$name = $fromUserDetails[0]['first_name'] . " " . $fromUserDetails[0]['last_name'];
$dateSent = date('Y-m-d', strtotime($message['time_sent']));
$messageTruncated = substr($message['message'], 0, 70) . "...";
$this->unreadMessagesReturn[] = array(
'fromPic' => $profileImageSmall,
'fromName' => $name,
'subject' => $message['subject'],
'message' => $message['message'],
'messageTruncated' => $messageTruncated,
'dateSent' => $dateSent
);
}
return $this->unreadMessagesReturn;
}
}
}
?>