【发布时间】:2020-02-19 09:33:06
【问题描述】:
自从 2 周以来,我在一个应用程序开发项目中工作。我必须创建许多 CRUD,这可能需要很多次。现在我想知道我是否可以使用免费的 crud 生成器 laravel。如果可以,哪个生成器? 需要您的帮助。
【问题讨论】:
标签: laravel crud-admin-generator
自从 2 周以来,我在一个应用程序开发项目中工作。我必须创建许多 CRUD,这可能需要很多次。现在我想知道我是否可以使用免费的 crud 生成器 laravel。如果可以,哪个生成器? 需要您的帮助。
【问题讨论】:
标签: laravel crud-admin-generator
命令:
php artisan make:model User -mrc
RESTful 资源控制器会为您设置一些默认路由,甚至命名它们。
Route::resource('users', 'UsersController');
为您提供这些命名路线:
Verb Path Action Route Name
GET /users index users.index
GET /users/create create users.create
POST /users store users.store
GET /users/{user} show users.show
GET /users/{user}/edit edit users.edit
PUT|PATCH /users/{user} update users.update
DELETE /users/{user} destroy users.destroy
你会像这样设置你的控制器(动作=方法)
class UsersController extends BaseController {
public function index() {}
public function show($id) {}
public function store() {}
}
您还可以像这样选择包含或排除哪些操作:
Route::resource('users', 'UsersController', [
'only' => ['index', 'show']
]);
Route::resource('monkeys', 'MonkeysController', [
'except' => ['edit', 'create']
]);
RESTful Resource Controller documentation
隐式控制器更加灵活。您会根据 HTTP 请求类型和名称路由到您的控制器方法。但是,您没有为您定义路由名称,它会捕获同一路由的所有子文件夹。
Route::controller('users', 'UserController');
会引导您使用一种 RESTful 命名方案来设置控制器:
class UserController extends BaseController {
public function getIndex()
{
// GET request to index
}
public function getShow($id)
{
// get request to 'users/show/{id}'
}
public function postStore()
{
// POST request to 'users/store'
}
}
Implicit Controller documentation
根据您的喜好使用您需要的东西是一种很好的做法。我个人不喜欢隐式控制器,因为它们可能很混乱,不提供名称并且在使用php artisan routes 时可能会造成混淆。我通常将 RESTful 资源控制器 与显式路由结合使用。
【讨论】:
Laravel 已经提供 CRUD 操作见:laravel.com/docs/5.8/controllers#resource-controllers
Laravel 资源路由通过一行代码将典型的“CRUD”路由分配给控制器。例如,您可能希望创建一个控制器来处理对应用程序存储的“照片”的所有 HTTP 请求。使用 make:controller Artisan 命令,我们可以快速创建这样一个控制器:
php artisan make:controller PhotoController --resource
[编辑 1]
或者您可以选择例如:Laravel-Backpack/CRUD,它带有一个管理面板和其他类似的东西。
[编辑 2]
你也可以参考这个 Laravel 博客来选择一个生成器:
https://laravel-news.com/13-laravel-admin-panel-generators
[编辑 3]
再次在 Laravel 博客上,您可以看到 Laravel 不断发展,添加了一个新的 Artisan 命令,请参阅:
【讨论】: