Laravel - 控制器中的 Tinker 断点

Laravel - Tinker breakpoint in controller

Lavarel 的新手。

我正在尝试调试 Laravel 中的控制器方法,为此我使用了 Tinker(基于 Psysh)。

我将这两个版本添加到我的 MySuperController:

方法 signup 中的断点
extract(\Psy\Shell::debug(get_defined_vars()));
eval(\Psy\sh());

我 运行 php artisan tinker 并在控制台中完成了以下操作:

$controller = app()->make('\App\Http\Controllers\Api\V1\MySuperController');
app()->call([$controller, 'signup'], ["param"=>"value"]);

执行时,Tinker 响应:Illuminate\Validation\ValidationException 消息 'The given data was invalid.'

但我从来没有看到代码在断点处停止。我是否错误地认为我可以使用 Tinker 逐步调试?

此答案基于用户@lagbox 的评论。我让他们把它作为一个答案,这样我就可以选择它,但是已经 4 个月了,所以我自己创建它,以便其他人可以快速看到问题已经得到回答:

评论中提到的用户@lagbox:

are you using a form request to validate? if so they are resolved and validated before your controller method is called

评论很到位。 Tmethod 使用了 自定义请求 class,它从 api/application/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php 扩展而来。我在 class 中添加了 eval() ,它最终到达了 断点 .