Laravel 响应:返回 HTML
问题
如何在控制器或路由中返回 HTML 内容的响应?
回答
所有路由和控制器处理完业务逻辑之后都会返回一个发送到用户浏览器的响应,Laravel 提供了多种不同的方式来返回响应,最基本的响应就是从路由或控制器返回一个简单的字符串,框架会自动将这个字符串转化为一个 Content-Type 为 text/html
的完整的 HTTP 响应:
Route::get('/', function () {
return 'Hello World';
});
当然,大多数时候我们是需要把 HTML 视图 作为响应内容返回,这时可以使用全局辅助函数 view
即可,其第一个参数接受的是视图文件名,下面的例子将在响应中返回 welcome
视图文件的内容:
Route::get('/', function () {
return view('welcome');
});
如果要控制 HTTP 状态码和头信息,可调用响应的 view
和 header
方法:
Route::get('/hello', function () {
return response()
->view('hello', ['text' => 'world'], 200)
->header('Content-Type', 'text/html; charset=UTF-8');
});