我一直在努力寻找 Laravel(5.4)中命名视图路径的良好惯例。
让我们说我正在使用资源路线。但是我还需要声明很多观看路线,什么是安全且最好的练习来声明这样的路线?
我有以下资源路线:
GET /tickets/12/messages
GET /tickets/12/messages/5
POST /tickets/12/messages
PUT /tickets/12/messages/5
PATCH /tickets/12/messages/5
DELETE /tickets/12/messages/5
我还需要为:
定义路线还有很多人......问题是:你如何定义我描述的路线?
非常感谢!
答案 0 :(得分:2)
Laravel为CRUD构建路由的方法是使用Route::resource()
方法:
Route::resource('tickets', 'TicketController');
您可以使用php artisan route:list
命令查看生成的路由列表。
https://laravel.com/docs/5.4/controllers#resource-controllers
答案 1 :(得分:2)
恕我直言,您可以尝试使用嵌套资源,在您的情况下:
Route::resource('tickets.messages', 'TicketMessageController');
Route::resource('users.tickets', 'UserTicketController');
他们产生了这种路线:
tickets/{ticket}/messages/{message}
users/{user}/tickets/{ticket}
在控制器中,您将在函数调用中注入两个参数,即:
class TicketMessageController
// show message for ticket
public function show(Ticket $ticket, Message $message)
// show all messages for a ticket
public function index(Ticket $ticket)
仅适用于Laravel 5.1的documented,但它适用于5.4
与往常一样,您可以使用php artisan route:list