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