CodeIgniter - truy cập biến $ config trong chế độ xem


101

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

Có một số cách hoặc thủ thuật để truy cập $configbiến từ các chế độ xem CI mà không làm phiền bộ điều khiển với mã dự phòng?

Câu trả lời:


194

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

Ví dụ: nếu tệp cấu hình chứa $config['foo'] = 'bar';thì$this->config->item('foo') == 'bar'


câu trả lời hay và hữu ích
Yagnesh bhalala

29

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


1
Cảm ơn vì đ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 kỳ ai khác, điều này hoạt động tuyệt vời.
CashIsClay

1
Nhưng, config_item()không có sự bảo vệ va chạm trong đó có sẵn trong$this->config->item()
Ijas Ameenudeen

15

Bạn có thể làm điều gì đó như vậy:

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

3
Thực tế trong một chế độ xem $, điều này đề cập đến CI_Loader và get_instance () đề cập đến CI_Base () như mọi khi.
Phil Sturgeon

8

$this->config->item('config_var') không làm việc cho trường hợp của tôi.

Tôi chỉ có thể sử dụng các config_item('config_var');biến để lặp lại trong chế độ xem


4

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 để bám vào đ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 của 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.


2

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


Tôi không biết tại sao nhưng kể từ hôm nay $ this-> config-> item ('var_name'); không hoạt động nữa đối với tôi .. cảm ơn vì cách thay thế. chỉ tự hỏi .. phương pháp này có hợp pháp không?
dapidmini

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

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

$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ử làm theo hai trường hợp, một trường hợp sẽ hoạt động

trường hợp 1:

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

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

case2:

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

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

2

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

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

Trong các ứng dụng / view / header.php (giả sử mã html)

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

Ví dụ về Tiêu đề


1

$config['cricket'] = 'bat'; trong tệp config.php

$this->config->item('cricket') sử dụng cái này để xem


0

Nếu bạn đang cố gắng truy cập biến cấu hình vào bộ điều khiển hơn là sử dụng

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

Nếu bạn đang cố gắng truy cập vào biến cấu hình bên ngoài bộ điều khiển (helper / hooks), hãy sử dụng

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

0

Ví dụ, nếu bạn có:

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

đặt trong config.php của bạn sau đó

echo base_url();

Điều này hoạt động rất tốt ở mọi nơi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.