Laravel - 视图:初学者指南
你好,未来的 Laravel 开发者们!今天,我们将深入 Laravel 最激动人心的部分之一——视图。如果你之前从未编写过代码,也不用担心;我会一步步带你了解所有内容。在本教程结束时,你将能够像专业人士一样创建美丽的网页!
视图是什么?
在 Laravel 中,视图就像是你的应用程序的漂亮面孔。它们负责用户在访问你的网站时实际看到的内容。可以把视图想象成以用户友好的方式展示数据的 HTML 模板。
创建你的第一个视图
让我们从一个简单的例子开始。想象我们想为我们的网站创建一个欢迎页面。下面是我们如何操作:
- 导航到 Laravel 项目中的
resources/views
目录。 - 创建一个名为
welcome.blade.php
的新文件。 - 添加以下代码:
<!DOCTYPE html>
<html>
<head>
<title>欢迎来到我的网站</title>
</head>
<body>
<h1>你好,世界!</h1>
<p>欢迎来到我的 Laravel 网站。</p>
</body>
</html>
这是一个基本的 HTML 结构,带有一个温馨的欢迎信息。.blade.php
扩展名告诉 Laravel 使用它的模板引擎 Blade,我们稍后会进一步探索。
渲染视图
现在我们有了视图,当有人访问我们的网站时,让我们显示它。在你的 routes/web.php
文件中,添加以下代码:
Route::get('/', function () {
return view('welcome');
});
这告诉 Laravel:“当有人访问主页时,展示 'welcome' 视图。”
向视图传递数据
视图很棒,但当我们能够动态地将数据插入其中时,它们变得真正强大。让我们看看如何做到这一点。
简单数据传递
想象我们想个性化我们的欢迎信息。我们可以像这样向视图传递数据:
Route::get('/', function () {
$name = "Sarah";
return view('welcome', ['name' => $name]);
});
现在,让我们更新我们的 welcome.blade.php
来使用这个数据:
<!DOCTYPE html>
<html>
<head>
<title>欢迎来到我的网站</title>
</head>
<body>
<h1>你好,{{ $name }}!</h1>
<p>欢迎来到我的 Laravel 网站。</p>
</body>
</html>
{{ $name }}
语法是 Blade 用于输出数据的方式。当你现在访问页面时,你会看到 "你好,Sarah!" 而不是 "你好,世界!"。
传递多个变量
我们可以传递尽可能多的变量。让我们添加更多:
Route::get('/', function () {
$data = [
'name' => "Sarah",
'age' => 28,
'hobbies' => ['阅读', '编程', '徒步']
];
return view('welcome', $data);
});
并更新我们的视图:
<!DOCTYPE html>
<html>
<head>
<title>欢迎来到我的网站</title>
</head>
<body>
<h1>你好,{{ $name }}!</h1>
<p>欢迎来到我的 Laravel 网站。</p>
<p>你今年 {{ $age }} 岁。</p>
<p>你的爱好有:</p>
<ul>
@foreach($hobbies as $hobby)
<li>{{ $hobby }}</li>
@endforeach
</ul>
</body>
</html>
在这里,我们引入了 Blade 指令 @foreach
来遍历爱好数组。Blade 使得在视图中处理数据变得非常简单!
向所有视图共享数据
有时,你可能希望与应用程序中的所有视图共享某些数据。例如,你可能在每个页面的导航栏中显示当前用户的姓名。
使用视图合成器
Laravel 提供了一个名为视图合成器的特性来实现这个目的。以下是如何使用它:
- 创建一个新文件
app/Providers/ViewServiceProvider.php
(如果它还不存在)。 - 添加以下代码:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;
class ViewServiceProvider extends ServiceProvider
{
public function boot()
{
View::composer('*', function ($view) {
$view->with('currentUser', 'John Doe');
});
}
}
- 在
config/app.php
中注册这个提供者:
'providers' => [
// 其他提供者...
App\Providers\ViewServiceProvider::class,
],
现在,$currentUser
将在所有视图中可用!
结论
视图是 Laravel 应用程序用户界面的核心。它们允许你将展示逻辑与业务逻辑分离,使你的代码更干净、更易于维护。记住,熟能生巧,所以不要害怕尝试不同的布局和数据传递技术!
以下是我们在本教程中介绍的方法的快速参考表:
方法 | 描述 |
---|---|
view('name') |
返回一个视图 |
view('name', ['key' => 'value']) |
返回一个带有数据的视图 |
View::composer('*', function) |
与所有视图共享数据 |
快乐编码,愿你的视图总是令人叹为观止!?
Credits: Image by storyset