CodeIgniter - เข้าถึงตัวแปร $ config ในมุมมอง


101

บ่อยครั้งที่ฉันต้องเข้าถึง$configตัวแปรในมุมมอง load->view()ฉันรู้ว่าฉันสามารถผ่านพวกเขาจากการควบคุม แต่ดูเหมือนว่าจะมากเกินไปที่จะทำอย่างชัดเจน

มีวิธีหรือเคล็ดลับในการเข้าถึง$configตัวแปรจากมุมมอง CI โดยไม่รบกวนตัวควบคุมด้วยรหัสสำรองหรือไม่?

คำตอบ:



29

นอกจากนี้ฟังก์ชัน Common ยังconfig_item()ทำงานได้ทุกที่ในอินสแตนซ์ CodeIgniter ตัวควบคุมโมเดลมุมมองไลบรารีตัวช่วยตะขออะไรก็ได้


1
ขอบคุณสำหรับสิ่งนี้ - ฉันประสบปัญหาในการเข้าถึงค่า config จาก hook สำหรับคนอื่นสิ่งนี้ใช้ได้ดี
CashIsClay

1
แต่config_item()ไม่มีระบบป้องกันการชนซึ่งมีอยู่ใน$this->config->item()
Ijas Ameenudeen

15

คุณสามารถทำสิ่งนั้นได้:

$ci = get_instance(); // CI_Loader instance
$ci->load->config('email');
echo $ci->config->item('name');

3
Actualy ภายในมุมมอง $ นี้อ้างถึง CI_Loader และ get_instance () หมายถึง CI_Base () เช่นเคย
Phil Sturgeon

8

$this->config->item('config_var') ไม่ได้ผลสำหรับกรณีของฉัน

ฉันสามารถใช้config_item('config_var');ตัวแปรเพื่อสะท้อนในมุมมองเท่านั้น


4

คอนโทรลเลอร์ของคุณควรรวบรวมข้อมูลทั้งหมดจากฐานข้อมูลการกำหนดค่า ฯลฯ มีหลายเหตุผลที่ดีที่จะยึดติดกับสิ่งนี้ เหตุผลที่ดีประการหนึ่งก็คือสิ่งนี้จะช่วยให้คุณเปลี่ยนแหล่งที่มาของข้อมูลนั้นได้ค่อนข้างง่ายและไม่ต้องทำการเปลี่ยนแปลงมุมมองของคุณ


2

เมื่อใดก็ตามที่ฉันต้องการเข้าถึงตัวแปร config ฉันมักจะใช้: $ this-> config-> config ['variable_name'];


ฉันไม่รู้ว่าทำไม แต่ตั้งแต่วันนี้ $ this-> config-> item ('var_name'); ไม่ได้ผลอีกต่อไปสำหรับฉัน .. ขอบคุณสำหรับวิธีอื่น แค่สงสัยว่า .. วิธีนี้ถูกกฎหมายหรือไม่?
dapidmini

2
echo $this->config->config['ur config file'] 

หากไฟล์กำหนดค่าของคุณมาพร้อมกับรูปภาพคุณต้องเข้าถึงเช่นนี้เช่นฉันรวม app.php ในโฟลเดอร์ config ฉันมีตัวแปร

$config['50001'] = "your  message"   

ตอนนี้ฉันต้องการเข้าถึงในคอนโทรลเลอร์หรือรุ่นของฉัน

ลองทำตามสองกรณีหนึ่งควรได้ผล

กรณีที่ 1:

$msg = $this->config->item('ur config file');

echo $msg['50001'];    //out put:  "your message";

กรณีที่ 2:

 $msg = $this->config->item('50001');

 echo $msg;    //out put:  "your message"

2

นี่คือวิธีที่ฉันทำ ใน config.php

$config['HTML_TITLE'] = "SO TITLE test";

ในแอปพลิเคชัน / view / header.php (สมมติว่าเป็นรหัส html)

<title><?=$this->config->item("HTML_TITLE");?> </title>

ตัวอย่างชื่อเรื่อง



0

หากคุณกำลังพยายามเข้าถึงตัวแปร config เข้าสู่คอนโทรลเลอร์มากกว่าใช้

$this->config->item('{variable name which you define into config}');

หากคุณพยายามเข้าถึงตัวแปร config จากภายนอกคอนโทรลเลอร์ (ตัวช่วย / hooks) ให้ใช้

$mms = get_instance();  
$mms->config->item('{variable which you define into config}');

0

ตัวอย่างหากคุณมี:

$config['base_url'] = 'www.example.com'

ตั้งค่าในconfig.phpของคุณแล้ว

echo base_url();

สิ่งนี้ได้ผลดีเกือบทุกสถานที่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.