laravel 学习
1. 安装
composer create-project laravel/laravel Laravel-Study
安装的版本Installing laravel/laravel (v10.2.8)
重新生成key
php artisan key:generate
配置.env
文件
DB_DATABASE=study
移除无用视图
rm resources/views/welcome.blade.php
配置路由
Route::get('/', 'StaticPagesController@home')->name('home');
Route::get('/help', 'StaticPagesController@help')->name('help');
Route::get('/about', 'StaticPagesController@about')->name('about');
创建 StaticPagesController
控制器
使用 驼峰式大小写 和复数形式
php artisan make:controller StaticPagesController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class StaticPagesController extends Controller
{
public function home()
{
return '主页';
}
public function help()
{
return '帮助页';
}
public function about()
{
return '关于页';
}
}
访问 http://laravel-study.test/
会报错找不到控制器
修改app/Providers/RouteServiceProvider.php
命名空间
21行左右 新增
protected $namespace = 'App\\Http\\Controllers';
然后在38行左右修改
Route::middleware('web')
->namespace($this->namespace) // 新增命名空间定义
->group(base_path('routes/web.php'));
现在访问 http://laravel-study.test/
就会显示 主页
内容了
添加静态页面视图
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class StaticPagesController extends Controller
{
public function home()
{
return view('static_pages/home');
}
public function help()
{
return view('static_pages/help');
}
public function about()
{
return view('static_pages/about');
}
}
会渲染在 resources/views
文件夹下的 static_pages/home.blade.php
文件。默认情况下,所有的视图文件都存放在 resources/views
文件夹下。
为了避免视图文件重复在每个文件中写重复的头文件等,我们需要使用通用视图
我们给应用创建了一个 default
视图,并将其放在 layouts
文件夹中,default
视图将作为整个应用的基础视图。实际上你只要保证视图文件被放置在 resources/views
目录下即可,Laravel
对视图的文件夹和文件命名并没有限制,我将 default
文件放在 layouts
文件下,只是为了让应用的目录结构让人更好理解。
# resources/views/layouts/default.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Weibo App</title>
</head>
<body>
@yield('content')
</body>
</html>
然后修改resources/views/static_pages/home.blade.php
等视图文件
@extends('layouts.default')
@section('content')
<h1>主页</h1>
@stop
我们使用@extends
并通过传参来继承父视图 layouts/default.blade.php
的视图模板。
@extends('layouts.default')
使用 @section
和 @stop
代码来填充父视图的 content
区块,所有包含在 @section
和 @stop
中的代码都将被插入到父视图的 content
区块。
@section('content')
<h1>主页</h1>
@stop
修改视图通用模板
# resources/views/layouts/default.blade.php
<!DOCTYPE html>
<html>
<head>
<title>@yield('title', 'Weibo App')</title>
</head>
<body>
@yield('content')
</body>
</html>
然后通过@section('title', '帮助')
来修改标题
@extends('layouts.default')
@section('title', '帮助')
@section('content')
<h1>帮助页</h1>
@stop
article 命令
# 帮助命令查看各个命名的使用
php artisan help migrate