2010-04-13 26 views
77

Khá thường xuyên, tôi cần truy cập $config biến trong chế độ xem. Tôi biết tôi có thể chuyển chúng từ bộ điều khiển đến load->view(). Nhưng có vẻ như quá mức để làm điều đó một cách rõ ràng.

Có cách nào hay lừa để truy cập $config biến từ chế độ xem CI mà không cần bộ điều khiển gây rối với mã dự phòng?

Trả lời

164

$this->config->item() hoạt động tốt.

Ví dụ, nếu tập tin cấu hình chứa $config['foo'] = 'bar'; sau đó $this->config->item('foo') == 'bar'

+47

Ví dụ: nếu có '$ config ['foo'] = 'bar';' trong cấu hình sử dụng '$ this-> config-> item ('foo')' sẽ là 'bar'. – Sasha

+0

Vui lòng thêm ví dụ trên để trả lời –

13

Bạn có thể làm một cái gì đó như thế:

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

Actualy trong một cái nhìn $ này đề cập đến CI_Loader và get_instance() dùng để chỉ CI_Base() như mọi khi. –

+0

làm việc với Thư viện Mẫu Ocular –

1

Bất cứ khi nào tôi cần phải truy cập các biến cấu hình tôi có xu hướng sử dụng: $ this-> config-> config [ 'variable_name'];

3

Bộ điều khiển của bạn nên thu thập tất cả thông tin từ cơ sở dữ liệu, cấu hình, v.v. Có nhiều lý do chính đáng để tuân thủ điều này. Một lý do chính đáng là điều này sẽ cho phép bạn thay đổi nguồn thông tin đó khá dễ dàng và không phải thực hiện bất kỳ thay đổi nào đối với quan điểm của bạn.

25

Ngoài ra, chức năng Common config_item() hoạt động khá nhiều ở mọi nơi trong suốt phiên bản CodeIgniter. Bộ điều khiển, mô hình, chế độ xem, thư viện, người trợ giúp, móc, bất kỳ điều gì.

+1

Cảm ơn điều này - Tôi gặp sự cố khi truy cập giá trị cấu hình từ móc. Đối với bất cứ ai khác, điều này làm việc tuyệt vời. – CashIsClay

+0

Tuy nhiên, 'config_item()' không có bảo vệ xung đột có sẵn trong '$ this-> config-> item()' – IJas

8

$this->config->item('config_var') không hoạt động đối với trường hợp của tôi.

tôi chỉ có thể sử dụng config_item('config_var'); để echo biến trong giao diện

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

Nếu tập tin cấu hình của bạn cũng đến hình ảnh bạn phải truy cập như thế này ví dụ tôi bao gồm app.php trong thư mục cấu hình tôi có biến số

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

Bây giờ tôi muốn truy cập trong bộ điều khiển hoặc mô hình của mình.

Hãy thử sau hai trường hợp ta nên làm việc

Trường hợp1:

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

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

Trường hợp2:

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

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

$config['cricket'] = 'bat'; trong file config.php

$this->config->item('cricket') sử dụng tính năng này trong chế độ xem

1

Đây là cách tôi đã làm. Trong config.php

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

Trong ứng dụng/xem/tiêu đề.php (giả sử mã html)

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

Example of Title

Các vấn đề liên quan