1

バックエンドコントローラーの拡張と、ログインユーザーのコントロールパネルダッシュボードの構築を担当する単純なコントロールパネルコントローラーがあります。ログインしているユーザーの役割に応じて、2 つのダッシュボードを読み込むことができます。ユーザーの役割が 4 の場合、管理者ダッシュボードがロードされます。それ以外の場合は、通常のユーザー ダッシュボードがロードされます。$user_data以下に注目すると、 role_idというオブジェクトからプロパティが要求されます。このオブジェクトは、バックエンド コントローラーで設定されます。これを行ったのは、このオブジェクトがほとんどのコントローラーで使用されているためです。

コントロール パネル コントローラーをロードすると、未定義の変数を受け取り、$user_data非オブジェクトのプロパティを取得しようとします。私がやっているように、バックエンドコントローラー内で変数を設定してコントロールパネルで使用することはできませんか?

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Control_panel extends Backend_Controller
{

    /**
     * Control_panel::__construct()
     * 
     * Load the parent construct and any additional models, helper, libraries available. 
     * 
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Control_panel::index()
     * 
     * Loads the dashboard that pertains to user's role
     * @return void
     */
    public function index()
    {
        $this->template
            ->title('Control Panel');

        if ($user_data->role_id == 4)
        {
            $this->template
                ->build('admin_dashboard_view');
        }
        else
        {
            $this->template
                ->build('user_dashboard_view');
        }

    }
}

バックエンド コントローラー

$user_data = $this->user->get_by('user_id', $this->session->userdata('user_id'));
$character_data = $this->character->get_many_by('owned_by', $this->session->userdata
        ('user_id'));
$user_data->characters = $character_data;

$this->template
        ->set_theme('smashing')
        ->set_layout('control_panel_view')
        ->set_partial('header', 'partials/header')
        ->set_partial('sidebar','partials/sidebar')
        ->set_partial('footer', 'partials/footer')
        ->set('user_data', $user_data);
4

1 に答える 1