Laravel Tinker17 Mar 2025 | 4 分钟阅读 Laravel Tinker 允许您在不创建路由的情况下与数据库交互。 Laravel tinker 与 php artisan 一起使用来创建对象或修改数据。 php artisan 是 Laravel 附带的命令行界面。 Tinker 是一个与 php artisan 一起使用的命令工具。 tinker 与数据库配合使用,这意味着它允许您创建对象、插入数据等。
php artisan tinker ![]() 上图显示了 tinker 环境已创建。 创建数据
![]() 输出 当我们执行上面的语句时,数据被插入到 posts 表中。 我们可以在 phpMyAdmin 中查看在下面的屏幕截图中插入的数据 ![]() 我们也可以通过创建对象来用另一种方式插入数据。
![]() 在上图中,高亮显示的行正在创建对象,并且对象的名称是 $post。 $post 是 App\Post 类的对象。 我们还可以通过指定命令行工具中的对象名称来查看 $post 对象是否已成功创建。 ![]() 上图高亮显示区域显示 $post 对象已成功创建,因为 $post 显示了类的名称 App\Post。
![]() 在上图中,我们分别使用语句 $post->title 和 $post->body 将值分配给 posts 表中列的 title 和 body。 但是,数据仍未插入表中。 为了将数据插入表中,我们需要使用以下语句 $post->save(); // 它将记录保存在数据库表中。 当我们在命令行工具中键入 $post 时, ![]() 上图高亮显示区域显示记录已保存在 posts 表中 让我们看一下 phpMyAdmin 中的 posts 表 ![]() 查找记录我们可以通过三种方式从数据库中检索记录
![]()
![]() 在上图中,我们正在检索 id 等于 1 的记录。在这种情况下,我们使用 first() 方法,因为 first() 方法用于检索单个记录。 ![]() 在上图中,我们正在检索 id 大于 1 的记录。在这种情况下,提取了多条记录,因此我们使用 get() 方法。 由于在检索记录数组时使用 get() 方法。
![]() 更新数据在本节中,我们将学习如何更新数据库中的数据。 让我们通过一个例子来理解。
![]() 在上图中,我们检索了第二条记录并将其存储在 $post 对象中。
![]()
![]() 在上图中,save() 方法返回 true,这意味着记录已成功更新到数据库中。 ![]() 删除数据现在,我们将了解如何从数据库表中删除数据。 让我们通过一个例子来理解。
![]() 上图显示 delete() 方法返回 true 值,这意味着该记录已被删除。
![]() 从上图可以看出,'id' 为 2 的记录仍然存在于表中,但 deleted_at 列中的日期不为空,这意味着该记录已被软删除。
![]() 在上图中,我们使用 $post->onlyTrashed(),这意味着 $post 对象仅包含已删除的记录。 要永久删除已删除的记录,我们在 $post 对象上使用 forceDelete() 方法。 ![]() 上图显示 forceDelete() 方法返回 true 值,这意味着记录已从表中成功删除。 让我们看一下数据库 ![]() 在上图中,我们观察到 'id' 为 2 的记录已从 posts 表中删除。 与 tinker 的关系到目前为止,我们使用路由找到了关系。 现在,我们将通过 tinker 了解关系。 在 laravel 关系主题中,我们借助路由通过一个对一个的关系来查找属于每个用户的帖子。 现在,我们在 tinker 环境中查找每个用户的帖子。 让我们通过一个例子来理解。
users 表 ![]() posts 表 ![]()
![]() 在上图中,我们观察到 $user 对象包含第二个用户,即 'users' 表中 'id' 等于 2 的记录。
![]() 上图显示语句 '$user->posts' 从 'posts' 表中检索用户的帖子。 下一主题Laravel Crud |
我们请求您订阅我们的新闻通讯以获取最新更新。