Laravel开发:如何使用Laravel Nova进行CRUD操作?

来源:undefined 2024-12-27 00:31:15 1045

laravel是当今最流行的php框架之一,它提供了丰富的功能和便捷的开发体验。laravel nova是一个专门为laravel应用程序设计的管理界面构建器,可帮助您更轻松地创建和管理后台管理面板。在本文中,我们将看看如何使用laravel nova进行crud操作。

什么是CRUD操作?

CRUD是“创建、读取、更新和删除”的缩写。这四个操作是任何应用程序的基本功能。通过CRUD操作,您可以实现对数据库中数据的增加、查询、更新和删除等基本操作。在Laravel框架中,我们可以使用Eloquent ORM来轻松地实现这些操作。但是,如果您想要一个更友好的管理面板,Laravel Nova会为您提供一种非常棒的解决方案。

安装Laravel Nova

在使用Laravel Nova之前,我们需要先安装它。Laravel Nova是一个商业产品,官方提供了一个30天免费试用期。如果您想要尝试它,可以前往https://nova.laravel.com/网站创建一个账户并获取试用许可证。

1

composer require laravel/nova

登录后复制

此外,您还需要注册Nova服务提供者。 在config / app.php文件中,找到providers数组,然后添加以下代码:

1

LaravelNovaNovaServiceProvider::class,

登录后复制

运行以上命令后,您需要运行以下命令:

1

php artisan nova:install

登录后复制
登录后复制

该命令将为您的应用程序生成Nova配置文件和资源目录。您还需要使用Nova发布命令将Nova的CSS和JavaScript文件发布到public / vendor / nova目录:

1

php artisan vendor:publish --tag=nova-assets

登录后复制

接下来,您还需要在config文件夹中的auth.php文件中设置驱动程序为session,才能让Nova的认证系统正常工作:

1

2

3

4

5

6

guards => [

web => [

driver => session,

provider => users,

],

],

登录后复制

最后,您还需要运行以下命令生成用于Nova的认证路由和表:

1

php artisan nova:install

登录后复制
登录后复制

至此,我们已经完成了Laravel Nova的安装和配置工作。

使用Laravel Nova进行CRUD操作

接下来,我们将看看如何使用Laravel Nova进行CRUD操作。我们将从简单的示例开始,让我们使用Laravel Nova创建一个新的博客应用程序,在这个应用程序中,我们将能够创建、查看、更新和删除博客文章。

1.创建模型和数据库迁移

首先,我们需要创建一个新模型和数据库迁移。我们将使用Laravel的Artisan命令行工具来完成这个过程。在控制台中,切换到您的项目文件夹,然后键入以下命令:

1

php artisan make:model Blog -m

登录后复制

该命令将创建一个名为Blog的新模型,同时还会生成一个名为create_blogs_table的新数据库迁移文件。

现在,我们需要在数据库迁移文件中定义我们的“blogs”表的架构。在database / migrations目录中找到此文件并打开它。您将看到如下代码:

1

2

3

4

5

6

7

8

9

10

11

12

public function up()

{

Schema::create(blogs, function (Blueprint $table) {

$table->id();

$table->timestamps();

});

}

public function down()

{

Schema::dropIfExists(blogs);

}

登录后复制

在此示例中,我们只定义了一个id和timestamps字段。您可以根据自己的需要调整和增加其他字段。完成后运行数据库迁移:

1

php artisan migrate

登录后复制

2.定义资源模型

接下来,我们需要定义一个资源模型。一个资源模型是Laravel Nova和Eloquent模型之间的桥梁。我们定义资源模型是为了告诉Laravel Nova哪个数据库表将与它关联。要创建资源模型,请键入以下命令:

1

php artisan nova:resource Blog

登录后复制

该命令将在app / Nova目录中创建一个新文件,名为Blog.php。打开此文件后,您将看到以下代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

<?php namespace AppNova;

use IlluminateHttpRequest;

use LaravelNovaFieldsID;

use LaravelNovaFieldsText;

use LaravelNovaFieldsNumber;

use LaravelNovaHttpRequestsNovaRequest;

class Blog extends Resource

{

/**

* The model the resource corresponds to.

*

* @var string

*/

public static $model = ;

/**

* The single value that should be used to represent the resource when being displayed.

*

* @var string

*/

public static $title = id;

/**

* The columns that should be searched.

*

* @var array

*/

public static $search = [];

/**

* Get the fields displayed by the resource.

*

* @param  IlluminateHttpRequest  $request

* @return array

*/

public function fields(Request $request)

{

return [

ID::make()->sortable(),

Text::make(Title)-&gt;sortable(),

Number::make(Views)-&gt;sortable(),

Text::make(Content)-&gt;hideFromIndex(),

];

}

/**

* Get the cards available for the request.

*

* @param  IlluminateHttpRequest  $request

* @return array

*/

public function cards(Request $request)

{

return [];

}

/**

* Get the filters available for the resource.

*

* @param  IlluminateHttpRequest  $request

* @return array

*/

public function filters(Request $request)

{

return [];

}

/**

* Get the lenses available for the resource.

*

* @param  IlluminateHttpRequest  $request

* @return array

*/

public function lenses(Request $request)

{

return [];

}

/**

* Get the actions available for the resource.

*

* @param  IlluminateHttpRequest  $request

* @return array

*/

public function actions(Request $request)

{

return [];

}

}

登录后复制

在此文件中,我们定义了一个名为Blog的新资源模型。现在,我们需要将该模型与Laravel模型关联起来。您只需打开模型文件并将以下代码添加到顶部即可:

1

2

3

4

5

6

7

8

namespace App;

use IlluminateDatabaseEloquentModel;

class Blog extends Model

{

//

}

登录后复制

3.将资源连接到nova

现在,我们需要将Blog资源连接到Laravel Nova。为此,您可以打开app / Nova / NovaServiceProvider.php文件,并将以下内容添加到其boot方法中:

1

2

3

4

5

6

7

8

9

10

11

12

use AppNovaBlog;

// ...

public function boot()

{

// ...

Nova::resources([

Blog::class,

]);

}

登录后复制

现在,我们已经成功将Laravel Nova配置好了,我们可以进入应用程序并看看它是什么样的。

4.进行CRUD操作

现在,我们已经成功设置了Laravel Nova,并将我们的Blog资源与它连接。我们可以访问管理面板,然后开始进行CRUD操作。

在控制台中运行以下命令,启动本地开发服务器:

1

php artisan serve

登录后复制

然后,打开http:// localhost:8000 / nova网址,您将看到一个登录页面。使用您的Laravel应用程序中的现有帐户进行登录。

现在,您可以单击顶部菜单上的“资源”下拉菜单,并选择Blog。在这里,您将看到一个空的博客列表。

我们可以使用Laravel Nova创建、读取、更新和删除博客文章。您可以单击页面右上角的“新建Blog”按钮,然后输入数据。每次添加新的博客文章时,该列表将自动更新以显示最新的数据。

您可以通过单击博客文章的名称,进入查看和编辑模式,以执行其他操作,例如更新或删除博客文章。此外,您还可以使用“筛选”功能快速查找特定的博客文章,并使用“搜索”功能搜索所有博客文章中的关键字。

总结

通过使用Laravel Nova,我们可以轻松地创建和管理Laravel应用程序的后台管理面板。在本教程中,我们学习了如何使用Laravel Nova构建一个简单的CRUD应用程序。您可以在实际项目中使用类似的方法来操作,同时掌握更多Laravel Nova的高级特性,以实现更为复杂的应用程序。

以上就是Laravel开发:如何使用Laravel Nova进行CRUD操作?的详细内容,更多请关注php中文网其它相关文章!

最新文章