Laravel - rute bersarang tanpa menggunakan sub ID

Saya membuat REST API di Laravel dan ada satu hal yang tidak dapat saya pahami. Situasinya adalah sebagai berikut; pengguna dapat masuk, menelusuri artikel, dan menjadikannya favorit.

Meja favorit terdiri dari article_id dan user_id

Permintaan dirancang dengan cara berikut:

  • [GET] /article/24 lihat artikel 24
  • [GET] /article/24/favorite menunjukkan favorit, jika tidak kembali 404
  • [POST] /article/24/favorite jadikan favorit
  • [DELETE] /article/24/favorite hapus favorit

Tampaknya baik-baik saja, tetapi sumber daya yang disarangkan secara default mengharapkan format berikut:

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

Apa cara terbaik untuk menghindari persyaratan sub id ini? Saya tidak memerlukan ID favorit karena kombinasi id artikel dan id pengguna sudah cukup untuk menemukan item di database saya.

Ini adalah rute saya saat ini untuk permintaan tersebut:

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

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

Saat ini, saya mengharuskan pengguna API untuk menambahkan /0 ke url untuk memicu rute yang benar, tetapi harus ada cara yang lebih baik.


person Henk    schedule 16.07.2013    source sumber


Jawaban (1)


Saya pikir Anda harus mempertimbangkan untuk tidak menggunakan ResourceController Laravel di sini. Mungkin Anda sebaiknya menggunakan RestfullControllers untuk kebutuhan spesifik Anda.

person Jan P.    schedule 17.07.2013