Laravel入门知识点整理
1. 什么是Laravel
Laravel是一个免费开源的PHP Web开发框架,它采用了MVC(Model-View-Controller)设计模式,有着优雅的语法和简便的操作,可以帮助开发者快速完成高质量的Web应用程序。
2. 安装Laravel
在开始使用Laravel之前,必须先在计算机上安装它。Laravel可以通过Composer被安装,并且需要满足一定的服务器要求。
以下是安装Laravel的步骤:
- 使用Composer安装Laravel
composer global require laravel/installer
- 在命令行中创建一个新的Laravel应用程序
laravel new myapp
这将在当前目录下创建一个名为“myapp”的新的Laravel应用程序。
- 运行Laravel
进入Laravel应用程序的目录,运行以下命令:
cd myapp
php artisan serve
这将启动一个开发服务器,可以在浏览器中访问http://localhost:8000进行访问。
3. 创建路由
Laravel的路由会确定一个URL请求要执行哪个控制器方法。需要打开app/Http/routes.php文件,可以看到如下的形式:
<?php
Route::get('/', function () {
return view('welcome');
});
这表示当访问根路径时,会调用回调函数并返回一个欢迎视图。
可以通过添加路由的方式来扩展应用程序的路由列表:
Route::get('/about', function () {
return "About us";
});
这将在浏览器中访问http://localhost:8000/about时返回一个“About us”的字符串。
4. 创建控制器
Laravel的控制器可以将相似的路由逻辑封装到一个单独的类中。可以使用以下命令创建一个新的控制器:
php artisan make:controller PageController
这将在app/Http/Controllers目录下创建一个名为PageController的新控制器文件。
在控制器中定义方法来处理请求:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PageController extends Controller
{
public function about()
{
return 'About us';
}
}
控制器可以有多个方法,并且每个方法都可以与应用程序中的不同路由相关联。
5. 添加视图
Laravel的视图提供了模板引擎来轻松地构建HTML页面。可以使用以下命令创建一个新的视图:
php artisan make:view about
这将在resources/views目录下创建一个名为about.blade.php的新视图文件。在这个文件中,可以使用Blade模板引擎定义HTML标记:
<!DOCTYPE html>
<html>
<head>
<title>About us</title>
</head>
<body>
<h1>About us</h1>
<p>We are a company that does great things</p>
</body>
</html>
可以通过在控制器方法中指定要返回的视图名称并使用视图函数来渲染视图:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PageController extends Controller
{
public function about()
{
return view('about');
}
}
这将渲染视图resources/views/about.blade.php。
6. 数据库迁移
Laravel提供了一种名为“迁移”的机制,可以帮助开发者修改数据库结构。迁移涉及创建一个脚本,该脚本定义了要执行的任务。Laravel发布的每个版本都有一个迁移文件夹,其中包含与该版本相关的迁移文件。
以下是如何创建一个名为“create_users_table”的迁移的步骤:
- 运行以下命令来创建迁移文件:
php artisan make:migration create_users_table --create=users
这将在database/migrations目录中创建一个迁移文件。
- 编辑迁移文件,定义要执行的操作:
```php
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
/*
* Run the migrations.
*
* @return void
/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
```
- 运行迁移:
php artisan migrate
这将在数据库中创建一个新的“users”表。
- 反向迁移:
php artisan migrate:rollback
这将删除最近运行的迁移。
示例1:简单的博客
在这个示例中,假设正在构建一个简单的博客应用程序。将创建一个名为“Post”的模型,用于表示帖子。该模型将存储在app/Post.php中:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
//
}
要为“Post”模型创建一个数据库迁移,可以运行以下命令:
php artisan make:migration create_posts_table --create=posts
然后,可以编辑生成的迁移文件,以便用于创建一个新的“posts”表。
在控制器中,定义一个方法来呈现所有帖子:
<?php
namespace App\Http\Controllers;
use App\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function index()
{
$posts = Post::all();
return view('posts.index', compact('posts'));
}
}
接下来,在数据库中添加一些示例帖子:
php artisan tinker
// create a sample post
$post = new App\Post;
$post->title = 'My first post';
$post->body = 'This is my first post';
$post->save();
// create another sample post
$post = new App\Post;
$post->title = 'My second post';
$post->body = 'This is my second post';
$post->save();
exit;
最后,创建一个视图文件来呈现所有帖子:
<!DOCTYPE html>
<html>
<head>
<title>Blog</title>
</head>
<body>
<h1>Blog</h1>
<ul>
@foreach ($posts as $post)
<li>{{ $post->title }}</li>
@endforeach
</ul>
</body>
</html>
示例2:注册和登录
在这个示例中,假设正在构建一个需要注册和登录的应用程序。可以使用Laravel的内置身份验证系统来处理身份验证。
首先,创建一个包含身份验证路由的路由文件。这将包含用于显示注册和登录表单以及处理提交的路由:
<?php
Route::get('register', 'Auth\RegisterController@showRegistrationForm');
Route::post('register', 'Auth\RegisterController@register');
Route::get('login', 'Auth\LoginController@showLoginForm');
Route::post('login', 'Auth\LoginController@login');
接下来,可以使用Artisan命令来生成具有所需路由的控制器:
php artisan make:auth
运行此命令将生成包含用于注册和登录功能的控制器、视图和路由文件的所有必需文件。
现在,可以使用以下命令创建一个新的迁移来添加一个存储用户信息的“users”表:
php artisan make:migration create_users_table --create=users
接下来,编辑生成的迁移文件,在“users”表中添加所需列。然后,运行“php artisan migrate”命令来运行迁移。
现在,可以访问应用程序的登录和注册表单。成功注册或登录后,用户将被重定向到主页。
在控制器中,可以使用以下方法来获取当前已认证的用户:
$user = Auth::user();
也可以使用以下方法将请求重定向到登录页面:
if (!Auth::check()) {
return redirect('/login');
}
可以在视图中使用以下代码块来显示已登录用户的名称:
<ul>
@if (Auth::check())
<li>Hello, {{ Auth::user()->name }}</li>
@endif
</ul>
总结
本文介绍了Laravel的基本知识和一些示例。学会如何安装Laravel,创建路由和控制器,添加视图和迁移数据库等。通过本文的示例,可以更好地理解Laravel的使用方法和实际应用场景。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:laravel入门知识点整理 - Python技术站