Laravel Tinker 的使用

Posted 小伍

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel Tinker 的使用相关的知识,希望对你有一定的参考价值。

Laravel Tinker 简介

在原生 php 中,可以通过 php -a 命令使用交互式 Shell:

# php -a
php > $msg = "Hello world!";
php > print $msg;
Hello world!
php > $num = array_sum([1, 2, 3]);
php > print $num;
6

此外,还可以使用 PsySH ,相较于原生的 php -a,PsySH 拥有更多高级特性,功能更加强大。

通过 Composer 全局安装:

composer g require psy/psysh:@stable

然后在命令行执行 psysh 即可进入交互式 Shell 了(需确保全局 Composer 的 bin 目录在系统路径中),在 PsySH 中可以编写各种代码,打印语句、计算表达式、编写函数等等。

Laravel Tinker 就是基于 PsySH 实现的,通过 Tinker,我们可以在命令行中实现与 Laravel 应用的各种交互,包括数据库的增删改查。

在命令行中通过 php artisan tinker 即可进入 Laravel Tinker 的交互式 Shell。

查看帮助文档

在 Laravel Tinker 中,doc 命令可用于查看某个函数或方法的帮助文档,例如,查看辅助函数 config() 如何使用:

doc config

show config

运行 Artisan 命令

运行 php artisan tinker 就相当于从控制台启动了 Laravel 应用,在运行交互式命令前,tinker 命令会添加一些命令到 Shell,这些命令定义在 Laravel\\Tinker\\Console\\TinkerCommand$commandWhitelist 属性中:

protected $commandWhitelist = [
    \'clear-compiled\', \'down\', \'env\', \'inspire\', \'migrate\', \'optimize\', \'up\',
];

因此,可以在 Tinker Shell 中直接运行这些命令:

>>> inspire
>>> env

测试 Laravel 代码

可以使用控制台来创建一个新的模型,将其保存到数据库,然后查询这条记录。

php artisan tinker
>>> migrate
>>> use App\\User;
>>> $user = new User();
>>> $user->name = "test";
>>> $user->email = "test@163.com";
>>> $user->password = bcrypt(\'123456\');
>>> $user->save();
>>> $user = User::where(\'email\', \'test@163.com\')->first();
>>> factory(User::class, 3)->create();
>>> 
>>> $user = App\\User::find(1);
>>> $user->delete();
>>> 
>>> $log = app(\'log\');
>>> $log->info(\'test\');

以上是关于Laravel Tinker 的使用的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 8 + Tinker:如何创建虚拟数据

Laravel Tinker 的使用

PHP 致命错误:在第 1 行 Laravel Artisan Tinker 的 eval() 代码中调用未定义函数 table()

laravel 5.5:php artisan tinker:ErrorException:目录不为空[重复]

如何使用 Laravel 8 中的工厂在 tinker 中创建虚拟表数据并连接它们?

text 使用Tinker与Laravel应用程序交互