Bằng cách đặt 'prefix' => 'admin'
, bạn đang yêu cầu CakePHP mà bạn muốn sử dụng tiền tố admin
cho tuyến đường đó; về cơ bản có nghĩa là bạn muốn sử dụng các hành động điều khiển và các khung nhìn có các tên được đặt trước bằng admin_
. Điều này một phần bạn đã nhận thức được, và mọi thứ có thể sẽ làm việc tốt với chỉ này.
Khi tạo các tuyến đường mặc dù, bất kỳ phím mảng truyền vào đối số thứ hai không được công nhận bởi CakePHP (tức. Không phải của bạn thường controller
, action
, plugin
, prefix
thứ) được thiết lập như các thông số tên trong các yêu cầu phù hợp với lộ trình đó.
Thêm 'admin' => true
do đó chỉ là một tham số được đặt tên trong trường hợp này, nhưng nó đi kèm với những ưu điểm của nó. Thứ nhất, nó có thể làm cho mã ngắn gọn hơn.
/* Determine if a request came through admin routing */
// without:
if ($this->params['prefix'] == 'admin') {}
// with:
if ($this->params['admin']) {}
/* Create a link that is reverse-routed to an admin prefixed route */
// without:
$html->link('...', array('prefix' => 'admin', 'controller' => 'users'));
// with:
$html->link('...', array('admin' => true, 'controller' => 'users'));
Thứ hai, nó cung cấp khả năng tương thích ngược với các tuyến đường quản trị viên làm việc trong CakePHP 1.2 (dòng cuối cùng từ ví dụ trên là cách bạn sẽ làm liên kết quản trị định tuyến trong 1.2). Do đó, các nhà phát triển di chuyển từ 1,2 đến 1,3 có thể ngăn chặn việc phải thay đổi liên kết trong suốt ứng dụng của họ bằng cách giữ cờ 'admin' => true
trong tuyến đường của họ (và thêm 'prefix' => 'admin'
một).
Cuối cùng, bằng cách đặt cờ tùy chỉnh như thế này với thông số được đặt tên và sử dụng nó trong ứng dụng của bạn thay vì tham chiếu tuyến đường của bạn bằng chuỗi chính xác có nghĩa là bạn ngăn mình không bao giờ phải thay đổi liên kết nếu bạn thay đổi tiền tố khác (nói từ admin
đến administrator
hoặc edit
) ... mặc dù đây là loại điểm tranh luận, vì bạn cần phải đổi tên tất cả các hoạt động và chế độ xem của bộ điều khiển admin_*
. :)
Cảm ơn bạn, chỉ cần những gì tôi cần – Rob