Laravel Tinker
Laravel Tinker 允许您在不创建路由的情况下与数据库进行交互。Laravel Tinker 与 php artisan 一起使用,用于创建对象或修改数据。php artisan 是 Laravel 提供的命令行界面。Tinker 是一个与 php artisan 协作的命令工具。Tinker 可以玩弄数据库,也就是允许您创建对象、插入数据等。
- 要进入 Tinker 环境,请运行下面的命令:
php artisan tinker
以上的屏幕显示出”tinker”环境已被创建。
创建数据
- 我们可以使用命令行工具在数据库表中创建记录。我们可以在命令行工具中使用以下语句,直接将数据插入数据库表中: **$post=App\Post::create([‘title’= >’Akshay’,’body’=>’akshay是一位软件开发人员’]); **
输出
当我们执行以上语句时,数据会被插入到一个 posts 表中。我们可以在一个名为 phpMyAdmin 的工具中查看插入的数据,如下所示的截图:
我们还可以通过创建一个对象来插入数据的另一种方式。
- 首先,我们创建这个对象。
我们也可以通过在命令行工具中指定对象的名字来查看一个给定类的 $post 对象是否成功创建。
上方高亮区域显示,$post对象已成功创建,如下所示: $post 显示类的名称, App\Post 。
- 对象创建后,我们将使用对象插入数据。
上面突出显示的区域显示记录保存在一个名为 posts 的表中
我们来看一下在 phpMyAdmin 中的 posts 表
查找记录
我们可以通过三种方法从数据库中检索记录:
- 第一种方法是使用 find() 方法。
- 第二种方法是使用约束条件(即 where 子句)。
在上面的屏幕中,我们正在检索id大于1的记录。在这种情况下,获取了多条记录,因此我们使用 get() 方法。当检索到一组记录时,使用get()方法。
- 第三种方法是使用 whereId() 。
更新数据
在本部分中,我们将学习如何更新数据库中的数据。
通过一个示例来理解。
- 首先,我们找到要更新的对象。
在上面的屏幕中,我们检索了第二条记录并存储在一个 $post 对象中。
- 现在我们更新了两列的值,标题和内容。
- 要将记录保存到数据库中,我们使用 save() 方法。
删除数据
现在,我们将看到如何从数据库表中删除数据。
通过一个例子来理解。
- 正如我们所知,post是包含第二条记录的对象,首先,我们将delete()方法应用于post对象。
上面的屏幕显示, delete() 方法返回true值,这意味着记录已被删除。
- 现在,我们将查看数据库,看看id等于2的记录是否实际上已被删除。
正如我们从上面的截图中可以观察到的那样,在表中仍然存在’id’为2的记录,但在 deleted_at 列中的日期不为空,这意味着该记录是软删除的。
- 要永久删除该记录,
在上述屏幕中,我们使用 $post- >onlyTrashed() 表示$post对象仅包含一个已被删除的记录。
要永久删除垃圾记录,我们在 $post 对象上使用 forceDelete() 方法。
上述屏幕显示 forceDelete() 方法返回一个 true 值,这意味着记录已成功从表中删除。
让我们来看一下数据库:
在上面的截图中,我们观察到“id”为2的记录被从posts表中删除。
与tinker的关系
到目前为止,我们通过路由找到了关系。现在,我们将通过tinker看到关系。在Laravel关系主题中,我们通过路由找到属于每个用户的帖子,从而了解了一对一的关系。现在,在tinker环境中找到每个用户的帖子。
通过一个例子来理解。
- 首先,我们查看两个表users和posts中可用的数据。
users表
posts表格
- 在这个步骤中,我们将找到用户。
在上面的截图中,我们可以观察到$user对象包含第二个用户,即在 users 表中’id’等于2的记录。
- 现在,我们通过 user 对象来调用 User 模型中可用的 posts() 方法。语句’user->posts’ 调用了 User 类的 posts 方法。
上面的屏幕显示的是语句 ‘ $user- >posts‘ 从 ‘ posts ‘ 表中检索用户的帖子。