美文网首页Laravel开发实践Laravel
Laravel从入门到上线运营-06mysql篇

Laravel从入门到上线运营-06mysql篇

作者: 3275508ab630 | 来源:发表于2019-10-09 19:22 被阅读0次

Laravel从入门到上线运营-06mysql篇

我们新建一个 mysql 数据库,charsetcollation 遵循 config/database.php 文件里的 mysql 配置选择 utf8mb4utf8mb4_unicode_cimysql 5.7 以后表基本上都选择 InnoDB 类型,数据库名,用户名,密码自己随意填写。

数据库创建完成后我们编辑 .env 文件,填入对应配置。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=数据库名
DB_USERNAME=用户名
DB_PASSWORD=密码

接下来建一张名字叫 post 文章表,我们无需手动去建,依然是通过命令行来创建。

php artisan make:model Post -c -m

我们创建 model 文件时顺便创建 controllermigartion 文件,省时又规范。model 称之为模型,用来查询数据表时使用, 注意开头大写,而且不用复数单词。

我们使用 migartion 文件来创建编辑数据表。添加两个字段先试试手,文件在 blog/database/migrations

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('title')->comment('标题');
            $table->string('content')->comment('内容');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('posts');
    }
}

文件编辑保存好后,再命令行输入

php artisan migrate

即可建表完成,会有其他表被同时创建,先不用管。migration 的内容同学自行学习,文档多过几遍,需要用到时,直接翻文档就行。

我们来 IndexController 中测试一下数据创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)操作,简称 curd

<?php

namespace App\Http\Controllers;

use App\Post;
use Illuminate\Http\Request;

class IndexController extends Controller
{
    public function index()
    {
        Post::create([
            'title' => '今天周三',
            'content' => '天气晴,还没到周五,心情有点down',
        ]);

        $time = '今天周三';
        return view('welcome', compact('time'));
    }
}

访问首页执行代码,会出现报错信息。

Add [title] to fillable property to allow mass assignment on [App\Post].
E5332E7C-C5D4-4441-85B7-9A7E741B398F.png

这里在 Post.php 文件中加入

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = ['title', 'content'];
}

重新访问,在通过数据库工具看看,表里应该会有数据了。

这里有两个字段 created_atupdated_at 被自动赋值了,也是 model 提供的功能。

但是时间不对,我们需要去 config/app.php 中找到 timezoneUTC 改为 PRC

如果使用 DB::table('posts')::create 则不会有该功能,许多方法,返回数据类型也是不同。何时使用 modeldb 就根据需求来。

除了创建,更新,删除,自行学习。我们现在查询数据,展示到首页去。

<?php

namespace App\Http\Controllers;

use App\Post;
use Illuminate\Http\Request;

class IndexController extends Controller
{
    public function index()
    {
        $data = Post::all();
        return view('welcome', compact('data'));
    }
}

welcome.blad.php,数据可以自己加几条。

@extends('app')

@section('title', '首页')

@section('content')
    <div class="container">
        <div class="row">
            @foreach($data as $v)
                <div class="col-12">
                    <h1 class="my-5">{{ $v->title }}</h1>
                    <p>{{ $v->content }}</p>
                </div>
            @endforeach
        </div>
    </div>
@endsection
98E7AFA7-E1FD-41A1-98FA-167CDB34DCD8.png

之后的网站功能,基本上就是增删改查,当你做多了就会发现,其实大家网站所有功能就是这样,归纳总结的能力需要同学自己锻炼出来。

相关文章

网友评论

    本文标题:Laravel从入门到上线运营-06mysql篇

    本文链接:https://www.haomeiwen.com/subject/mktnpctx.html