本文概述
Laravel Tinker允许你与数据库交互, 而无需创建路由。 Laravel Tinker与php artisan一起使用来创建对象或修改数据。 php artisan是Laravel提供的命令行界面。 Tinker是一个与php artisan一起使用的命令工具。修补程序围绕数据库运行, 这意味着你可以创建对象, 插入数据等。
- 要进入Tinker环境, 请运行以下命令:
PHP Tinker
上面的屏幕显示已创建修补程序环境。
建立资料
- 我们可以使用命令行工具在数据库表中创建记录。我们在将数据直接插入数据库表的命令行工具中使用以下语句:$ post = App \ Post :: create([‘title’=>’Akshay’, ‘body’=>’akshay是一个软件开发师’]);
输出量
当我们执行上面的语句时, 数据被插入到一个posts表中。我们可以在phpMyAdmin中查看插入的数据, 如以下屏幕截图所示:
我们还可以使用另一种方式通过创建对象来插入数据。
- 首先, 我们创建对象。
在上面的屏幕中, 突出显示的行正在创建对象, 并且该对象的名称为$ post。 $ post是App \ Post类的对象。
通过在命令行工具中指定对象的名称, 我们还可以查看$ post对象是否已成功创建给定类。
上面突出显示的区域显示$ post对象已成功创建, 因为$ post显示类的名称App \ Post。
- 创建对象后, 我们将在对象的帮助下插入数据。
在上面的屏幕中, 我们分别通过使用语句$ post-> title和$ post-> body将值分配给posts表中的列的title和body。但是, 仍然没有将数据插入表中。要将数据插入表中, 我们需要使用下面给出的语句:
$ post-> save(); //将记录保存在数据库表中。
当我们在命令行工具中键入$ post时,
上面突出显示的区域显示记录已保存在帖子表中
让我们看看phpMyAdmin中的posts表
查找记录
我们可以通过三种方式从数据库中检索记录:
- 第一种方法是使用find()方法。
- 第二种方法是使用约束, 即where子句。
在上面的屏幕中, 我们正在检索记录, 该记录的“ id”等于1。在这种情况下, 我们使用first()方法, 因为first()方法用于检索单个记录。
在上面的屏幕中, 我们正在检索ID大于1的记录。在这种情况下, 要提取多个记录, 因此我们使用get()方法。当检索记录数组时, 使用get()方法。
- 第三种方法是使用whereId()。
更新数据
在本节中, 我们将学习如何更新数据库中的数据。
让我们通过一个例子来理解。
- 首先, 我们找出要更新的对象。
在上面的屏幕中, 我们检索了第二条记录并存储在$ post对象中。
- 现在, 我们更新两列的标题和正文的值。
- 要将记录保存到数据库中, 我们使用save()方法。
在上面的屏幕中, save()方法返回true, 这意味着该记录已在数据库中成功更新。
删除资料
现在, 我们将看到如何从数据库表中删除数据。
让我们通过一个例子来理解。
- 我们知道$ post是一个包含第二条记录的对象, 首先, 我们在$ post对象上应用delete()。
上面的屏幕显示delete()方法返回true值, 这意味着该记录已被删除。
- 现在, 我们将查看数据库是否实际上删除了ID等于2的记录。
从上面的屏幕快照中我们可以看到, 表中的’id’2记录仍然可用, 但是delete_at列中的日期不是null, 这意味着该记录已被软删除。
- 要永久删除记录,
在上面的屏幕中, 我们使用$ post-> onlyTrashed()表示$ post对象仅包含已删除的记录。
要永久删除已删除的记录, 我们在$ post对象上使用forceDelete()方法。
上面的屏幕显示forceDelete()方法返回一个真值, 这意味着该记录已成功从表中删除。
让我们看一下数据库:
在上面的屏幕截图中, 我们观察到“ id” 2的记录已从posts表中删除。
与Tinker的关系
到现在为止, 我们通过使用路由找到了关系。现在, 我们将通过修补程序看到这种关系。在laravel关系主题中, 我们借助查找每个用户所属帖子的路线来阅读一对一关系。现在, 我们在修补程序环境中找到每个用户的帖子。
让我们通过一个例子来理解。
- 首先, 我们查看表, 用户表和帖子表中的可用数据。
用户表
帖子表
- 在这一步, 我们将找到用户。
在上面的屏幕截图中, 我们观察到$ user对象包含第二个用户, 即在’users’表中’id’等于2的记录。
- 现在, 我们通过$ user对象实现User模型中可用的posts()方法。语句“ $ user-> posts”调用User类的posts方法。
上面的屏幕显示语句“ $ user-> posts”从“ posts”表中检索用户的帖子。
评论前必须登录!
注册