开始之前的准备
参考 http://junwind.top/2024/08/24/laravel-%e7%8e%af%e5%a2%83%e4%b8%8d%e6%8a%98%e8%85%be/ 文章安装。
提示:记得要安装PHP的mysql,redis扩展。
修改 .env 文件,配置MySQL,redis
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel-weibo
DB_USERNAME=laravel-weibo
DB_PASSWORD=123456
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=123456
REDIS_PORT=6379
测试mysql
1、在mysql的laravel-weibo库中,创建一个test表,随便给点字段,给几条数据。
2、打开 routes/web.php
use Illuminate\Support\Facades\DB;
...
Route::get('/', function () {
$testData = DB::select("select * from test");
print_r($testData);
return view('welcome');
});
访问测试
测试redis
use Illuminate\Support\Facades\Redis;
...
Route::get('/', function () {
Redis::set("name", 'xqw001');
print_r(Redis::get("name"));
return view('welcome');
});
同样访问页面测试。
换一个 APP_KEY
php artisan key:generate --show
提示:.env 中的配置,我们可以用 getenv() 来获取。
创建几个静态页面
删除默认的 welcome 页面
rm resources/views/welcome.blade.php
添加路由
routes/web.php
Route::get('/', 'StaticPagesController@home');
Route::get('/help', 'StaticPagesController@help');
Route::get('/about', 'StaticPagesController@about');
GET 获取数据
POST 添加数据
PATCH 更新数据
DELETE 删除数据
修改路由服务提供者,使其支持 class@method路由方式
app/Providers/RouteServiceProvider.php
protected $namespace = 'App\\Http\\Controllers';
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
添加控制器
php artisan make:controller StaticPagesController
创建三个方法
public function home()
{
return view('static_pages/home');
}
public function help()
{
return view('static_pages/help');
}
public function about()
{
return view('static_pages/about');
}
添加视图文件
添加通用视图
<!DOCTYPE html>
<html>
<head>
<title>@yield('title', 'Weibo App') - laravel</title>
</head>
<body>
@yield('content')
</body>
</html>
about.blade.php 页面,其它两个页面类似。
@extends('layouts.default')
@section('title', '关于')
@section('content')
<h1>关于</h1>
@stop
视图优化
从 default 中分出,header,footer 两个局部视图
default.blade.php
<!DOCTYPE html>
<html>
<head>
<title>@yield('title', 'Weibo App') - Laravel 入门教程</title>
<link rel="stylesheet" href="{{ mix('css/app.css') }}">
</head>
<body>
@include('layouts._header')
<div class="container">
<div class="offset-md-1 col-md-10">
@yield('content')
@include('layouts._footer')
</div>
</div>
</body>
</html>
_header.blade.php
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container ">
<a class="navbar-brand" href="/">Weibo App</a>
<ul class="navbar-nav justify-content-end">
<li class="nav-item"><a class="nav-link" href="/help">帮助</a></li>
<li class="nav-item" ><a class="nav-link" href="#">登录</a></li>
</ul>
</div>
</nav>
_footer.blade.php
<footer class="footer">
<img class="brand-icon" src="https://cdn.learnku.com/uploads/sites/KDiyAbV0hj1ytHpRTOlVpucbLebonxeX.png">
<a href="https://learnku.com/laravel/courses" target=_blank class="text-decoration-none">
刻意练习,每日精进
</a>
<div class="float-end">
<a href="/about" class="text-decoration-none">关于</a>
</div>
</footer>
home.blade.php
@extends('layouts.default')
@section('content')
<div class="bg-light p-3 p-sm-5 rounded">
<h1>Hello Laravel</h1>
<p class="lead">
你现在所看到的是 <a href="https://learnku.com/courses/laravel-essential-training">Laravel 入门教程</a> 的示例项目主页。
</p>
<p>
一切,将从这里开始。
</p>
<p>
<a class="btn btn-lg btn-success" href="#" role="button">现在注册</a>
</p>
</div>
@stop
使用路由名称,来替换视图文件中的链接
Route::get('/help', 'StaticPagesController@help')->name('help'); // 这个 name("help") 中的 help 就是定义这条路由的别名为 help
// 页面中我们可以这样来替换原本写死的链接了
<li><a href="{{ route('help') }}">帮助</a></li>
这样写的好处是,假如我们需要将 http://xx/help 换为 http://xx/faq,我们可以仅改一个地方
Route::get('/faq', 'StaticPagesController@help')->name('help');
现在,可以将web.php路由文件中的路由,都添加上别名了,然后更改之前视图文件中写死的链接了。