当前位置: 首页 > 后端技术 > PHP

使用Tinker调试Laravel应用数据及使用Tinker一些总结

时间:2023-03-29 18:24:05 PHP

使用Tinker调试Laravel应用数据及使用Tinker一些总结阅读Laravel应用中的数据。我们可以使用Laravel手工制作的内置phpartisantinker工具来处理数据库中的应用程序和事物。Laravelartisan的tinker程序是一个REPL(read-eval-print-loop)。repl译为read-eval-print-loop(interactivecommandlineinterface),是一种交互式语言shell。它允许你输入一段代码来执行,并将执行结果直接打印到命令行界面。查看数据库中数据的快捷方式下面输入命令行直接查看结果//查看所有用户的计数App\User::count();//查找特定用户并查看其属性App\User::where('username','samuel')->first();//找到用户的关系$user=App\User::with('posts')->first();$user->职位;使用phpartisantinker,我们可以很快做到这一点。Tinker是Laravel自带的repl,基于PsySH。它允许我们与我们的应用程序进行交互,dd()和die()停止。我们中的许多人都知道当我们的代码中有print_r()和dd()时发生的痛苦。在使用Tinker之前,让我们创建一个演示项目。我们称之为ScotchTest。如果您的计算机上安装了laravel安装程序,请运行此命令。laravelnewScotchTest对于那些在他们的计算机上没有Laravel安装程序的人,可以使用composer创建一个新的Laravel项目。composercreate-projectlaravel/laravelScotchTest--prefer-dist或指定一个laravel版本composercreate-projectlaravel/laravel=5.3ScotchTest--prefer-dist1.数据库设置:运行迁移安装我们的演示Laravel项目后,我们需要创建数据库并设置迁移。对于本文,我们将使用默认的Laravel迁移。因此,我们将.env文件配置为指向您为此测试创建的数据库。默认迁移包括创建users表和password_resets表。在phpartisan迁移我们的数据库之后,我们应该看到类似这样的东西2.填充我们的数据库默认情况下,Laravel提供了一个模型工厂,我们可以使用它来为我们的数据库提供种子。现在让我们开始使用Tinker。命令phpartisantinker会打开一个REPL窗口供我们使用。现在我们已经执行了迁移,我们可以直接在REPL中使用模型工厂来填充数据。factory(App\User::class,10)->create();一组十个新用户应该出现在您的终端上。然后我们可以检查数据库以查看用户是否实际创建。应用\用户::所有();为了得到我们数据库中的用户总数,我们可以直接调用count的User模型。应用\用户::计数();执行App\User::all()和App\User::count()后,我的输出是这样的,你的输出应该和我的差不多,只是生成的内容不同。3.创建新用户通过REPL,我们也可以创建新用户。您应该已经注意到,我们在REPL中使用的命令与我们在Laravel中编写的代码相同。所以创建新用户的代码:$user=newApp\User;$user->name="imax";$user->email="imax@gmail.com";$user->password=bcrypt("12345");$用户->保存();现在输入$user,可以看到4.删除一个用户删除id为1的用户:$user=App\User::find(1);$user->delete();5。查看某个类/方法的注释文档通过tinker可以查看REPL中某个类/方法的注释文档。但是文档内容取决于这个类/方法是否有文档注释块(DocBlocks)。doc#将替换为函数名或者类FQN例如参考dd的注释文档6.查看源码我们也可以在repluseshow中查看某个函数或者类的源码例如,调用showGiveushereatdd。7.总结LaravelTinker是一个工具,可以帮助我们在不启动本地服务器的情况下轻松地与我们的应用程序进行交互。假设您想在项目的几行文本中测试一个简单的功能,只需使用phpartisantinker。8.遇到的一些问题及解决方案8.1关于使用tinker中文报错如果你使用的是Laravel5.3版本,想插入中文测试数据,会出现如下错误信息解决方案1.修改~/www/laravel/vendor/fzaninotto/faker/src/Faker/Factory.php的constDEFAULT_LOCALE='en_US';更改为constDEFAULT_LOCALE='zh_CN';2、将~/www/laravel/vendor/fzaninotto/faker/src/Faker/Provider/en_US/Text.php复制到zh_CN目录下3、并将对应命名空间的名称修改为命名空间FakerProviderzh_CN;4、我们重新执行phpartisantinker,用工厂模型创建10条数据看看。phpartisantinkerfactory(App\User::class,10)->create();再次验证$user=newApp\User();$user->name="Panda";8.2windowscmd终端中文乱码TinkerProblem#将终端改为UTF8字符先输入CHCP65001然后打开【属性】,将字体改为【LucidaConsole】8.3Tinker对修饰符仍然有效//在修改器中设置修饰符用户模型publicfunctionsetNameAttribute($value){$this->attributes['name']=strtolower($value);}8.4Tinker后台添加管理员。一般后台管理平台关闭注册功能。那么如何添加管理员账号。仅参考步骤3。不过,除了使用bcrypt()加密外,还可以使用Hash::mark()$user->password=Hash::make('serct');原始链接使用Tinker调试Laravel应用程序的数据和一些使用TinkerMaterials的摘要参考[1]使用PhpArtisanTinker参考[2]使用PhpArtisanTinker调试Laravel参考[3]]Laravel框架填充中文数据测试数据