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()
,它最终到达了 断点 .
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()
,它最终到达了 断点 .