Laravel路由中使用echo未在终端输出内容,是否为正确用法?
解答
关于echo的用法说明
PHP原生的echo作用是将内容输出到HTTP响应体,Laravel没有修改它的默认行为,所以你现在的写法是可以在网页端生效的:访问首页时hello world会插入到welcome视图内容的最前方,右键查看网页源代码就能在开头看到这段内容,它本来就不会输出到运行服务的终端,不是用法错误,是你对echo的输出目标理解有误。
如果只是要在网页上直接输出hello world不需要加载默认落地页,简化写法即可:
Route::get('/', function () { echo "hello world"; });
终端输出内容的正确方案
如果你的需求是在运行Laravel服务的终端(比如php artisan serve启动的控制台)打印内容,需要使用Laravel自带的日志功能:
- 首先在路由文件顶部引入日志门面
use Illuminate\Support\Facades\Log;
- 修改路由逻辑调用日志方法输出内容
Route::get('/', function () { Log::info('hello world'); return view('welcome'); });
输出的内容会同时出现在运行服务的终端、以及项目storage/logs/laravel.log日志文件中。
内容的提问来源于stack exchange,提问作者TechSelfLearner
相关产品推荐
相关产品推荐

