使用资源路由时命名Laravel视图路由

时间:2017-03-28 20:01:29

标签: php laravel routes

问题

我一直在努力寻找 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

我还需要为:

定义路线
  • 显示视图以编辑特定消息。
  • 显示视图以将特定消息添加到故障单。
  • 显示视图以创建特定故障单。
  • 显示视图以显示系统中的所有故障单。
  • 显示视图以显示属于特定用户的所有故障单。

还有很多人......问题是:你如何定义我描述的路线?
非常感谢!

2 个答案:

答案 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

查看所有生成的路线