วิธีสร้าง URL ในคอนโทรลเลอร์เช่น HtmlHelper

TLDR: ฉันจะสร้าง URL ในคอนโทรลเลอร์ที่คล้ายกับที่ฉันสามารถใช้ HtmlHelper เพื่อสร้าง URL ในมุมมองได้อย่างไร


ปัญหา:

ฉันต้องการพิมพ์ URL ของการดำเนินการของคอนโทรลเลอร์ในคอนโทรลเลอร์ของฉัน (เพราะฉันสร้างสตริง JSON ในคอนโทรลเลอร์ ไม่ใช่ในมุมมอง)

ใน View ฉันสามารถใช้ $this->Html->url() ได้ แต่ในคอนโทรลเลอร์ล่ะ

ฉันควรใช้ค่าคงที่ที่กำหนดเช่น APP_DIR + ชื่อคอนโทรลเลอร์ + การกระทำของคอนโทรลเลอร์หรือไม่)


person mrdaliri    schedule 11.08.2012    source แหล่งที่มา


คำตอบ (1)


ใช้คลาสเราเตอร์

$url = Router::url([
    'controller' => 'Articles',
    'action' => 'index',
    '?' => ['page' => 1],
    '#' => 'top'
]);

หรือสิ่งเดียวกัน แต่ในสถานการณ์ทั่วไป/เรียบง่ายกว่า:

$url = Router::url(['controller' => 'Articles', 'action' => 'index']);

หมายเหตุ: ใน Cake2.x "บทความ" จะเป็นตัวพิมพ์เล็ก


เอกสารประกอบเราเตอร์ CakePHP 2.x< /แข็งแกร่ง>

เอกสารประกอบ 'การสร้าง URL ของ CakePHP 3.x

person Dave    schedule 11.08.2012
comment
อย่าลืมใช้คลาสการกำหนดเส้นทาง: use Cake\Routing\Router; - person Tomas Gonzalez; 05.03.2017