Laravel - เส้นทางที่ซ้อนกันโดยไม่ต้องใช้รหัสย่อย

ฉันกำลังสร้าง REST API ใน Laravel และมีสิ่งหนึ่งที่ฉันคิดไม่ออก สถานการณ์มีดังนี้ ผู้ใช้สามารถเข้าสู่ระบบ เรียกดูบทความ และทำให้เป็นบทความโปรดได้

โต๊ะโปรดประกอบด้วย article_id และ user_id

คำขอได้รับการออกแบบในลักษณะต่อไปนี้:

  • [GET] /article/24 ดูบทความ 24
  • [GET] /article/24/favorite หมายถึงรายการโปรด หากไม่ส่งคืน 404
  • [POST] /article/24/favorite ทำให้เป็นรายการโปรด
  • [DELETE] /article/24/favorite ลบรายการโปรด

ดูเหมือนว่าจะใช้ได้ แต่ทรัพยากรที่ซ้อนกันโดยค่าเริ่มต้นคาดว่าจะมีรูปแบบต่อไปนี้:

/controller/[id]/sub_controller/[sub_id]

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

นี่คือเส้นทางปัจจุบันของฉันสำหรับคำขอ:

Route::resource('articles', 'ArticlesController', 
  array('only' => array('index','store','show','destroy')));

Route::resource('articles.favorite', 'ArticlesFavoriteController', 
  array('only' => array('show','store','destroy')));

ขณะนี้ ฉันต้องการให้ผู้ใช้ API ต่อท้าย /0 เข้ากับ url เพื่อทริกเกอร์เส้นทางที่ถูกต้อง แต่จะต้องมีวิธีที่ดีกว่า


person Henk    schedule 16.07.2013    source แหล่งที่มา


คำตอบ (1)


ฉันคิดว่าคุณควรพิจารณาไม่ใช้ ResourceController ของ Laravel ที่นี่ บางทีคุณควรเลือกใช้ RestfullControllers ตามความต้องการเฉพาะของคุณ

person Jan P.    schedule 17.07.2013