Kết nối dự án laravel của bạn với cơ sở dữ liệu MySQL khá dễ dàng. Vì chúng tôi đã thực hiện cài đặt với XAMPP. Nó đi kèm với MySQL và PHPMyAdmin đã được cài đặt sẵn. Trong hướng dẫn này, tôi sẽ sử dụng phpMyAdmin để tạo một cơ sở dữ liệu mới sẽ kết nối với ứng dụng laravel. Bài đăng này giả định rằng bạn đã thiết lập dự án laravel tại địa phương của mình và bạn có thể truy cập trang chủ của nó thông qua localhost hoặc tên miền được đặt tùy chỉnh Bước 1. Tạo cơ sở dữ liệu mới qua phpmyadmin Điều hướng đến tên miền. dev/PHPMyAdmin, Nhấp vào tab Cơ sở dữ liệu và tạo cơ sở dữ liệu mới với tên bạn muốn
Nhấp vào tạo sẽ tạo cơ sở dữ liệu mới trong XAMPP MySQL của bạn Bước 2. Những thay đổi trong. tập tin cấu hình env Khi cơ sở dữ liệu được tạo, bạn cần thông báo cho dự án laravel của mình chi tiết về cơ sở dữ liệu
Laravel 5 có một cách khá đơn giản để làm điều đó, Tất cả cấu hình mà bạn nên giữ riêng tư và không nên chia sẻ sẽ được đưa vào. tệp env của dự án laravel của bạn Trong hướng dẫn này, bạn sẽ học cách xây dựng một ứng dụng theo dõi tâm trạng với Laravel 9, kết nối nó với cơ sở dữ liệu MySQL của PlanetScale, thực hiện các thay đổi lược đồ cơ sở dữ liệu và triển khai nhánh cơ sở dữ liệu của bạn để sản xuất. Bạn sẽ sử dụng PlanetScale cho cơ sở dữ liệu, cơ sở dữ liệu này cung cấp cho bạn cơ sở dữ liệu tương thích với MySQL được quản lý hoàn toàn, khả năng mở rộng không giới hạn, quy trình phát triển giống như Git, không thay đổi giản đồ thời gian ngừng hoạt động, v.v. Dưới đây là một số điểm nổi bật về những gì bạn sẽ tạo - Cơ sở dữ liệu MySQL sẵn sàng sản xuất trong PlanetScale
- 2 nhánh cơ sở dữ liệu.
php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 2 cho sản xuất và php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 3 cho phát triển - 2 bảng,
php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 4 và php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 5, để lưu trữ các mục nhập hàng ngày và tùy chọn tâm trạng của bạn - Di chuyển cơ sở dữ liệu và trình gieo hạt để chạy trên cơ sở dữ liệu phát triển của bạn
- Triển khai các thay đổi lược đồ không chặn từ phát triển sang sản xuất với PlanetScale
Nếu bạn chỉ muốn bắt đầu và chạy với Laravel và PlanetScale, thay vào đó hãy xem hướng dẫn nhanh về Laravel của chúng tôi. Bạn cũng có thể tìm thấy mã cuối cùng cho ứng dụng này trên GitHub nếu bạn muốn tìm hiểu xung quanh Bắt đầu nào Để chạy hướng dẫn này, bạn sẽ cần như sau - Kiến thức về Laravel cho người mới bắt đầu — Hướng dẫn này sử dụng Laravel
php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 6 - PHP — Hướng dẫn này sử dụng
php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 7 - nhà soạn nhạc
- npm
- Tài khoản PlanetScale miễn phí
Có một số cách để cài đặt ứng dụng Laravel 9 mới Hướng dẫn này sẽ sử dụng phương pháp cài đặt Composer, nhưng vui lòng chọn bất kỳ phương pháp nào bạn thích Để cài đặt với Trình soạn thảo, hãy đảm bảo rằng bạn đã cài đặt PHP và Trình soạn thảo trên máy của mình Phần cuối composer create-project laravel/laravel laravel-mood-tracker
Sau khi cài đặt, hãy nhập vào thư mục của bạn, mở nó trong trình chỉnh sửa mã của bạn và khởi động ứng dụng Phần cuối cd laravel-mood-tracker
php artisan serve
Bạn có thể xem ứng dụng của mình tại http. //máy chủ cục bộ. 8000/ Trước khi bạn đi sâu vào mã, hãy thiết lập cơ sở dữ liệu của bạn. Truy cập PlanetScale để đăng ký tài khoản nếu bạn chưa có Tạo cơ sở dữ liệuTiếp theo, bạn sẽ được nhắc tạo cơ sở dữ liệu mới. Đặt tên cho nó, chọn khu vực gần bạn nhất hoặc ứng dụng của bạn và nhấp vào "Tạo cơ sở dữ liệu" Khi bạn ở đây, hãy chuyển đến tab "Cài đặt" trên cơ sở dữ liệu của bạn và nhấp vào hộp kiểm bên cạnh "Tự động sao chép dữ liệu di chuyển", chọn "Laravel" từ danh sách thả xuống và nhấp vào "Lưu thay đổi cơ sở dữ liệu". Điều này không bắt buộc, nhưng nó cho phép PlanetScale theo dõi các lần di chuyển Laravel của bạn để các nhánh cơ sở dữ liệu mới được tạo tự động với các lần di chuyển mới nhất Làm việc với các chi nhánhMột trong những tính năng mạnh mẽ của PlanetScale là khả năng tạo các nhánh, tương tự như mô hình Git Cơ sở dữ liệu của bạn đi kèm với một nhánh mặc định, php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 2. Nhánh này được chỉ định là nhánh phát triển để bắt đầu, với mục tiêu chuyển nó sang sản xuất sau khi bạn thực hiện bất kỳ thay đổi lược đồ cần thiết nàoĐể chứng minh điều này hoạt động như thế nào, hãy quảng cáo nhánh php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 2 để sản xuất ngay bây giờ, sau đó tạo một nhánh mới, php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 3, để phát triển. Nhánh php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 2 hiện đang trống, nhưng khi bạn đã hoàn tất tất cả các thay đổi của mình trên nhánh php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 3, bạn có thể cuộn chúng lên tới php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 2Để tạo một chi nhánh mới - Chọn cơ sở dữ liệu của bạn từ trang chính
- Nhấp vào "Chi nhánh mới"
- Đặt tên cho nó là
php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 3 hoặc bất cứ thứ gì bạn muốn - Nhấp vào "Tạo chi nhánh"
Tiếp theo, đưa nhánh php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 2 vào sản xuất. Một nhánh sản xuất bảo vệ bạn khỏi việc thực hiện các thay đổi lược đồ trực tiếp (có nghĩa là ít có khả năng mắc lỗi hơn. ), có tính khả dụng cao và bao gồm các bản sao lưu hàng ngày tự độngThúc đẩy php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 2 sản xuất- Quay lại trang tổng quan về cơ sở dữ liệu và nhấp vào tab Chi nhánh
- Nhấp vào nhánh
php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 2 - Nhấp vào nút "Thúc đẩy chi nhánh sản xuất"
- Đảm bảo rằng
php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 2 được chọn và nhấp vào "Quảng bá chi nhánh"
Đó là nó. Bây giờ bạn có một cơ sở dữ liệu trực tiếp với hai nhánh được lưu trữ trên PlanetScale Cơ sở dữ liệu của bạn hiện đang trống, vì vậy hãy kết nối nó với ứng dụng Laravel của bạn để bạn có thể bắt đầu ghi dữ liệu vào đó Bạn có thể kết nối cơ sở dữ liệu phát triển của mình với ứng dụng Laravel theo một trong hai cách sau. hoặc với một. Hướng dẫn này sẽ chỉ cho bạn cách kết nối bằng tên người dùng và mật khẩu, nhưng bạn có thể sử dụng một trong hai tùy chọn Kết nối với tên người dùng và mật khẩu- Quay lại bảng điều khiển PlanetScale của bạn, nhấp vào tab "Chi nhánh" trong cơ sở dữ liệu của bạn và chọn
php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 3 - Nhấp vào nút "Kết nối"
- Nhấp vào "Mật khẩu mới"
- Chọn "Laravel" từ danh sách thả xuống hiện được đặt thành "Chung"
- Sao chép toàn bộ thông tin đăng nhập. Hãy chắc chắn rằng bạn sao chép nó, vì bạn sẽ không thể nhìn thấy lại mật khẩu khi rời khỏi trang. Bạn luôn có thể tạo một cái mới nếu bạn quên lưu trữ nó
Định cấu hình ứng dụng Laravel 9 của bạnTiếp theo, hãy kết nối ứng dụng Laravel của bạn. Mở tệp <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 0 của bạn trong trình chỉnh sửa mã của bạn, tìm phần kết nối cơ sở dữ liệu và dán thông tin đăng nhập mà bạn đã sao chép từ bảng điều khiển PlanetScaleNó sẽ trông giống như thế này DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
Ghi chú. Giá trị của <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 1 sẽ phụ thuộc vào hệ thống của bạn. Bạn có thể tìm thêm thông tin trên trang Kết nối an toàn của chúng tôiCuối cùng, hãy chạy ứng dụng Laravel của bạn với Phần cuối php artisan serve
Nhánh phát triển PlanetScale của bạn hiện được kết nối với ứng dụng Laravel của bạn. Hãy thêm một lược đồ và một số dữ liệu để xem nó hoạt động Đối với ứng dụng theo dõi tâm trạng này, bạn sẽ cần hai mô hình. <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 2 và <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 3Ngoài ra, mỗi mô hình sẽ có một bộ điều khiển, di chuyển và/hoặc trình gieo hạt và tệp xuất xưởng tương ứng. Dưới đây là tổng quan về mục đích sử dụng của từng tệp và cách chúng tương tác - Mô hình — Để sử dụng ORM của Laravel, Eloquent, mỗi bảng có một Mô hình cho phép Eloquent biết cách tương tác với bảng đó. Nó chứa thông tin về các mối quan hệ của bảng, những thuộc tính nào có thể được sửa đổi, v.v.
- Bộ điều khiển — Mỗi kiểu máy cũng có một bộ điều khiển tương ứng. Các bộ điều khiển này giữ logic để xử lý các yêu cầu trong ứng dụng của bạn. Ví dụ: để xem tất cả các mục trong trình theo dõi tâm trạng của bạn, ứng dụng của bạn sẽ sử dụng lớp trình điều khiển đã chỉ định để tìm ra cách lấy dữ liệu
- Di chuyển — Quá trình di chuyển của bạn không chỉ xác định lược đồ cơ sở dữ liệu mà ứng dụng của bạn sử dụng mà còn đóng vai trò kiểm soát phiên bản. Nếu ai đó mới tham gia nhóm của bạn, tất cả những gì họ phải làm để có được phiên bản hiện tại của lược đồ của bạn (cũng như tất cả lịch sử) là chạy các lần di chuyển hiện có. Bất cứ khi nào bạn cần sửa đổi lược đồ, bạn sẽ tạo một quá trình di chuyển để làm như vậy
- Seeders — Các tệp seeder của bạn cho phép bạn chạy cơ sở dữ liệu phát triển của mình với một số dữ liệu ban đầu, điều này có lợi cho việc thử nghiệm ứng dụng của bạn. Bạn có thể tạo seeder của mình với dữ liệu cụ thể, dữ liệu được tạo tự động hoặc kết hợp. Dù bằng cách nào, thật hữu ích khi biết rằng toàn bộ nhóm làm việc trên ứng dụng có thể dễ dàng sử dụng cùng một dữ liệu mẫu
- Nhà máy - Các tệp nhà máy hoạt động với các mô hình và tệp trình tạo của bạn để xác định dữ liệu hạt giống. Bạn không thể chỉ sử dụng bất kỳ dữ liệu nào khi tạo cơ sở dữ liệu của mình. Nó phải phù hợp với các yêu cầu lược đồ cơ sở dữ liệu như loại, độ dài, tính duy nhất, v.v. Với nhà máy, bạn có thể sử dụng các định nghĩa này từ lớp Mô hình của mình để kiểm soát dữ liệu nào được tạo và số lượng
Bạn thực sự có thể tạo khung cho tất cả các tệp này bằng một lệnh duy nhất. Chạy phần sau để tạo các tệp này Phần cuối php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController
Bảng php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 4 sẽ khá tĩnh, vì vậy bạn không cần tệp gốc cho điều đó, chỉ cần cho php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 5. Tương tự như vậy, bạn sẽ không cần tệp seeder cho bảng php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 5, vì bạn sẽ gọi cho nhà máy trực tiếp từ tệp seeder chính. Bạn cũng đang tạo một tệp <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 7 độc lập để tạo trang chủ. Bạn sẽ thấy tổng cộng 9 tệp mới có cấu trúc như sau├ app
├── Http
│ ├── Controllers
│ └── MoodController.php
│ └── EntryController.php
│ └── HomeController.php
├── Models
│ ├── Mood.php
│ └── Entry.php
├── database
│ ├── factories
│ └── EntryFactory.php
│ └── migrations
│ └── xxxx_xx_xx_xxxxxx_create_moods_table.php
│ └── xxxx_xx_xx_xxxxxx_create_entries_table.php
│ └── seeders
│ └── MoodSeeder.php
└
Hãy thiết lập các tệp này ngay bây giờ để bạn có thể hiểu rõ hơn về dữ liệu sẽ trông như thế nào Đầu tiên, xóa tất cả các tệp di chuyển hiện có trong <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 8 ngoại trừ hai tệp cho php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 4 và php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 5. Ngoài ra còn có một người lén lút đi chơi trong <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEntriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('entries', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->text('notes');
$table->foreignId('mood_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('entries');
}
} 1 mà bạn cũng có thể xóaMở tệp di chuyển cho bảng php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 4 bên dưới <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEntriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('entries', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->text('notes');
$table->foreignId('mood_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('entries');
}
} 3 và thay thế bằng bảng sauPHP <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
}
Sau khi chạy, thao tác này sẽ tạo bảng php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 4 với các cột <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEntriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('entries', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->text('notes');
$table->foreignId('mood_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('entries');
}
} 5, <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEntriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('entries', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->text('notes');
$table->foreignId('mood_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('entries');
}
} 6 và <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEntriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('entries', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->text('notes');
$table->foreignId('mood_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('entries');
}
} 7, như được mô tả bên dưới<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEntriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('entries', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->text('notes');
$table->foreignId('mood_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('entries');
}
} 5 (BIGINT KHÔNG ĐƯỢC KÝ) — Tự động tăng để xác định tâm trạng<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEntriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('entries', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->text('notes');
$table->foreignId('mood_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('entries');
}
} 6 (VARCHAR) — Tên tâm trạng<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEntriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('entries', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->text('notes');
$table->foreignId('mood_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('entries');
}
} 7 (VARCHAR) — Màu dùng để thể hiện tâm trạng
Tiếp theo, mở tệp di chuyển cho php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 5 tại php artisan migrate 2 và thay thế bằngPHP <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEntriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('entries', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->text('notes');
$table->foreignId('mood_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('entries');
}
}
Đây là các cột cho bảng php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 5<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEntriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('entries', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->text('notes');
$table->foreignId('mood_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('entries');
}
} 5 (LỚN LỚN CHƯA KÝ) — Tự động tăng để xác định mục nhậpphp artisan migrate 5 (NGÀY) — Ngày nhập cảnhphp artisan migrate 6 (TEXT) — Bất kỳ ghi chú nào đi kèm với mục nhậpphp artisan migrate 7 (BIGINT CHƯA KÝ) — Tâm trạng tương ứng cho mục nhập này
Quan trọng. Mặc dù thông thường, bạn có thể thêm phương thức php artisan migrate 8 vào khóa ngoại (php artisan migrate 7) để thực thi tính toàn vẹn tham chiếu, nhưng chúng tôi đã cố tình bỏ qua phương thức này ở đây. PlanetScale không hỗ trợ các ràng buộc khóa ngoại được thực thi ở cấp cơ sở dữ liệu vì chúng tôi tin rằng chúng không đáng để đánh đổi về hiệu suất và khả năng mở rộng
Chạy di chuyểnBây giờ là lúc để chạy di chuyển. Trong thiết bị đầu cuối của bạn trong thư mục dự án Laravel, hãy chạy như sau Phần cuối php artisan migrate
Vì bạn đã kết nối với cơ sở dữ liệu PlanetScale của mình, những lần di chuyển này hiện đang hoạt động trên nhánh php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 3 của bạn (hoặc bất kỳ thứ gì bạn đã định cấu hình trong tệp <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 0 của mình)Để xác nhận điều này, hãy truy cập bảng điều khiển PlanetScale của bạn, nhấp vào cơ sở dữ liệu của bạn, nhấp vào "Nhánh", chọn nhánh php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 3, nhấp vào "Lược đồ" và nhấp vào "Làm mới lược đồ". Bạn sẽ thấy ba bảng. php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 5, SHOW tables;
DESCRIBE entries;
DESCRIBE moods; 4 và php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 4Bạn cũng có thể xem các bảng của mình trong bảng điều khiển MySQL của PlanetScale bằng cách nhấp vào "Bảng điều khiển" và chạy SQL SHOW tables;
DESCRIBE entries;
DESCRIBE moods;
Hãy thêm một số dữ liệu vào cơ sở dữ liệu của bạn. Mở SHOW tables;
DESCRIBE entries;
DESCRIBE moods; 6 và thay thế nó bằng phần sauPHP cd laravel-mood-tracker
php artisan serve 0Như đã đề cập trước đó, bảng php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 4 hiện tại sẽ khá tĩnh, vì vậy bạn chỉ cần tạo dữ liệu một cách rõ ràng trong seeder vì không có nhiều dữ liệuĐối với dữ liệu hạt giống php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 5, bạn sẽ muốn tạo một số bản ghi với một số giá trị ngẫu nhiên thay vì dữ liệu được mã hóa cứng như trong php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 4. Đây là nơi các nhà máy phát huy tác dụng. Mở cd laravel-mood-tracker
php artisan serve 00 và thay thế nó bằngPHP cd laravel-mood-tracker
php artisan serve 1Văn bản cho mỗi mục đang được tạo bằng cách sử dụng Faker PHP. Một <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEntriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('entries', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->text('notes');
$table->foreignId('mood_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('entries');
}
} 5 ngẫu nhiên từ mô hình <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 2 được chỉ định cho php artisan migrate 7. Mục nhập ngày phức tạp hơn một chút vì nó cần phải là duy nhất và ở một định dạng cụ thể. Bạn không thể sử dụng thư viện Faker cho việc này vì nó chỉ có thể tạo ra một giá trị duy nhất là cd laravel-mood-tracker
php artisan serve 04, không phải là cd laravel-mood-tracker
php artisan serve 05. Bạn sẽ tạo các giá trị ngày ngẫu nhiên trong bước tiếp theoCuối cùng, sửa đổi tệp cd laravel-mood-tracker
php artisan serve 06 chính của bạn như sauPHP cd laravel-mood-tracker
php artisan serve 2Điều này đầu tiên chạy tệp cd laravel-mood-tracker
php artisan serve 07 mà bạn đã điền trước đó. Tiếp theo, bạn đang tạo một mảng gồm 15 ngày ngẫu nhiên, duy nhất bằng cách sử dụng thư viện cd laravel-mood-tracker
php artisan serve 08. Cuối cùng, bạn lặp qua mảng đó, gọi tệp cd laravel-mood-tracker
php artisan serve 00 mà bạn đã tạo ở bước trước và thêm ngày ngẫu nhiên vào mỗi bản ghi php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 5. cd laravel-mood-tracker
php artisan serve 11 sử dụng phương pháp cd laravel-mood-tracker
php artisan serve 12 để tạo bản ghi cơ sở dữ liệu mới dựa trên mô hình <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 3Bước cuối cùng trước khi gieo hạt là thiết lập các mô hình. Đầu tiên, hãy mở cd laravel-mood-tracker
php artisan serve 14 và thay thế nó bằngPHP cd laravel-mood-tracker
php artisan serve 3Ở đây, trước tiên bạn chỉ định những thuộc tính nào có thể được sửa đổi trong cd laravel-mood-tracker
php artisan serve 15. Quên thiết lập điều này là một lỗi phổ biến có thể khó gỡ lỗi khi mới bắt đầu, vì vậy, bất cứ khi nào bạn thêm một cột mà bạn có thể viết vào, hãy đảm bảo cập nhật cột đó tại đâyBạn cũng đang đặt cd laravel-mood-tracker
php artisan serve 16 thành cd laravel-mood-tracker
php artisan serve 17 để Laravel không tự động tạo các cột cd laravel-mood-tracker
php artisan serve 18 và cd laravel-mood-tracker
php artisan serve 19 trong bảng php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 4Các mô hình cũng cho phép bạn xác định các mối quan hệ Eloquent. Trong mô hình <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 2, bạn đang xác định mối quan hệ một-nhiều giữa các mục nhập và tâm trạng. Mỗi tâm trạng có thể có nhiều mục, nhưng mỗi mục sẽ chỉ có một tâm trạng tương ứng với nó. Điều này được phản ánh trong hàm cd laravel-mood-tracker
php artisan serve 22 sử dụng phương thức cd laravel-mood-tracker
php artisan serve 23. Mỗi <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 2 có nhiều mụcPhương pháp cd laravel-mood-tracker
php artisan serve 25 được sử dụng để xóa bộ nhớ cache khi lưu tâm trạng mới. Bạn sẽ thấy điều này phát huy tác dụng khi bạn cập nhật bộ điều khiển của mìnhTiếp theo, mở cd laravel-mood-tracker
php artisan serve 26 và thay thế nó bằng nội dung sauPHP cd laravel-mood-tracker
php artisan serve 4Điều này tương tự như mô hình <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 2. Bạn cũng đang tạo mối quan hệ nghịch đảo bằng cách sử dụng cd laravel-mood-tracker
php artisan serve 28. Mỗi <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 3 thuộc về chính xác một <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 2Xác định các mối quan hệ này ngay bây giờ sẽ cho phép bạn sử dụng Eloquent, ORM của Laravel, để dễ dàng làm việc với dữ liệu của bạn Cuối cùng, đã đến lúc khởi tạo cơ sở dữ liệu của bạn. Trong thiết bị đầu cuối trong thư mục dự án của bạn, hãy chạy như sau Phần cuối cd laravel-mood-tracker
php artisan serve 5Điều này sẽ chạy tệp cd laravel-mood-tracker
php artisan serve 06 chínhĐể xem dữ liệu đã tạo của bạn và xác nhận rằng nó hoạt động, hãy quay lại bảng điều khiển PlanetScale của bạn, chọn cơ sở dữ liệu, nhấp vào "Nhánh", chọn nhánh php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 3 và nhấp vào "Bảng điều khiển". Chạy các truy vấn sauSQL cd laravel-mood-tracker
php artisan serve 6Bạn sẽ thấy dữ liệu cho bảng php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 4 mà bạn đã tạoSQL cd laravel-mood-tracker
php artisan serve 7Đối với bảng php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 5, bạn có. 15 bản ghi có ngày ngẫu nhiên, duy nhất trong 2 tháng qua, văn bản ngẫu nhiên bên dưới php artisan migrate 6 và một php artisan migrate 7 được chọn ngẫu nhiên phù hợp với một trong những tâm trạng trong bảng php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 4Bây giờ, nhánh phát triển của bạn đã được tải lên với một số dữ liệu giả, hãy thiết lập bộ điều khiển tài nguyên để bạn có thể tạo và sửa đổi dữ liệu Trong khi cơ sở dữ liệu được thiết lập và sẵn sàng hoạt động, ứng dụng vẫn chưa thực sự làm bất cứ điều gì. Hãy khắc phục điều đó Bộ điều khiển đầu vàoĐầu tiên, mở cd laravel-mood-tracker
php artisan serve 38 và thay thế nó bằngPHP cd laravel-mood-tracker
php artisan serve 8Sau đó, cd laravel-mood-tracker
php artisan serve 39 có các phương thức saucd laravel-mood-tracker
php artisan serve 40 — Hiển thị tất cả các mục nhậpcd laravel-mood-tracker
php artisan serve 12 — Hiển thị biểu mẫu để tạo mục nhập mớicd laravel-mood-tracker
php artisan serve 42 — Xác thực đầu vào mục nhập mới và lưu nó vào cơ sở dữ liệucd laravel-mood-tracker
php artisan serve 43 — Hiển thị một mục duy nhấtcd laravel-mood-tracker
php artisan serve 44 — Hiển thị biểu mẫu để cập nhật mục nhậpcd laravel-mood-tracker
php artisan serve 45 — Xác thực mục nhập đã cập nhật và cập nhật trong cơ sở dữ liệucd laravel-mood-tracker
php artisan serve 46 — Xóa mục nhập
Hãy xem qua một số chi tiết đáng chú ý của bộ điều khiển này mà bạn cũng sẽ thấy trong cd laravel-mood-tracker
php artisan serve 47Bộ nhớ đệm Phương thức cd laravel-mood-tracker
php artisan serve 40 lấy TẤT CẢ các mục nhập từ cơ sở dữ liệu. Mặc dù đây không phải là một con số lớn đối với ứng dụng mẫu này, nhưng nó có khả năng biến thành một hiệu suất khổng lồ và chi phí tăng lên khi dữ liệu tăng lênCó một số cách để cải thiện hiệu suất, nhưng một giải pháp nhanh chóng là lưu trữ dữ liệu vào bộ đệm PHP cd laravel-mood-tracker
php artisan serve 9Laravel làm cho bộ nhớ đệm dễ dàng sử dụng phương pháp. Thao tác này sẽ kiểm tra bộ đệm để xem dữ liệu đã tồn tại ở đó chưa và nếu chưa, nó sẽ lấy từ cơ sở dữ liệu và lưu trữ trong bộ đệm trong 3600 giây dưới dạng php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 5Để tìm hiểu sâu hơn về Laravel caching, hãy xem Giới thiệu về Laravel caching Lượt xem Với mọi phương thức, bạn sẽ thấy câu lệnh trả về ở cuối trả về chế độ xem hoặc chuyển hướng cùng với một số dữ liệu PHP DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
0Trong ví dụ trên, sau khi phương thức thực thi, người dùng sẽ được chuyển đến trang mục nhập cd laravel-mood-tracker
php artisan serve 51 được tìm thấy tại cd laravel-mood-tracker
php artisan serve 52 (bạn sẽ sớm tạo trang này). Dữ liệu cho cd laravel-mood-tracker
php artisan serve 53 cũng sẽ được chuyển đến chế độ xemXác thực biểu mẫu Cả hai phương pháp cd laravel-mood-tracker
php artisan serve 42 và cd laravel-mood-tracker
php artisan serve 45 đều yêu cầu một số loại xác thực biểu mẫu trước khi lưu trữ các mục nhập vào cơ sở dữ liệu. Bạn không bao giờ nên tin tưởng đầu vào của người dùng, vì vậy xác thực biểu mẫu phụ trợ là điều cần thiết để xác thực rằng đầu vào của người dùng là chính xácPHP DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
1Laravel làm cho việc xác thực biểu mẫu phức tạp nhất trở nên dễ dàng. Đoạn mã trên là từ phương pháp cd laravel-mood-tracker
php artisan serve 45Hãy kiểm tra xác nhận của php artisan migrate 5. Hai cái đầu tiên, cd laravel-mood-tracker
php artisan serve 58 và , khá đơn giảnCái tiếp theo, cd laravel-mood-tracker
php artisan serve 60, phức tạp hơn một chút. Bạn không muốn ngày lặp lại trong ứng dụng này, vì vậy bạn phải kiểm tra xem ngày đó có phải là duy nhất không khi xác thực. Tuy nhiên, nếu bạn đang cập nhật một mục hiện có, ứng dụng của bạn sẽ so sánh đầu vào được cập nhật của người dùng với mục hiện có. Nếu người dùng chỉ cập nhật văn bản, thì ngày sẽ giống nhau, vì vậy nó sẽ không xác thực. Để giải quyết vấn đề này, bạn có thể chuyển vào <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEntriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('entries', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->text('notes');
$table->foreignId('mood_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('entries');
}
} 5 hiện tại và nó sẽ kiểm tra xem tất cả các ngày là duy nhất ngoại trừ ngày trên mục nhập được chỉ địnhBộ điều khiển nhàTiếp theo, thiết lập <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 7, sẽ được sử dụng để lấy dữ liệu cho trang chủ. Mở cd laravel-mood-tracker
php artisan serve 63 và dán vào phần sauPHP DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
2Bộ điều khiển tâm trạngCuối cùng, mở cd laravel-mood-tracker
php artisan serve 64 và dán vào phần sauPHP DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
3Điều này rất giống với cd laravel-mood-tracker
php artisan serve 39, vì vậy để cho ngắn gọn, tôi sẽ không mở rộng bất kỳ chi tiết nàoBây giờ bạn đã tạo bộ điều khiển, hãy thiết lập các tuyến đường. Mở cd laravel-mood-tracker
php artisan serve 66 và thay thế nó bằngPHP DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
4Khi bạn tạo bộ điều khiển <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 3 và <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 2 trước đó, bạn đã chỉ định chúng làm bộ điều khiển tài nguyên bằng cách sử dụng cờ cd laravel-mood-tracker
php artisan serve 69. Điều này có nghĩa là các bộ điều khiển được xây dựng sẵn để xử lý tất cả các thao tác CRUD (tạo, đọc, cập nhật, hủy)Sau đó, bạn có thể sử dụng phương pháp cd laravel-mood-tracker
php artisan serve 70 để tạo tất cả các tuyến đường cần thiết để tạo, đọc, cập nhật và xóa chỉ trong một dòngMột cách tiện lợi để xem tất cả các tuyến đường này sẽ tạo là chạy PHP DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
5Bạn sẽ thấy một cái gì đó như thế này Phần cuối DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
6Tại thời điểm này, bạn có một cơ sở dữ liệu đang hoạt động với dữ liệu giả và chức năng CRUD hoàn chỉnh. Tất cả những gì bạn cần làm bây giờ là tạo chế độ xem ứng dụng để người dùng của bạn có thể tương tác với ứng dụng Bố cục của ứng dụng này sử dụng Tailwind để tạo kiểu, cũng như một số thành phần TailwindUI dựng sẵn, vì vậy, bạn sẽ cần thêm Tailwind làm thành phần phụ thuộc Đây là cách bạn kéo Tailwind vào ứng dụng của mình - Chạy phần sau trong thư mục gốc của dự án Laravel của bạn để cài đặt nó
Phần cuối DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
7- Mở
cd laravel-mood-tracker
php artisan serve 71 và thêm cd laravel-mood-tracker
php artisan serve 72 làm plugin PostCSS
Javascript DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
8- Mở
cd laravel-mood-tracker
php artisan serve 73 và cập nhật cd laravel-mood-tracker
php artisan serve 74 như sau
Javascript DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
9- Mở
cd laravel-mood-tracker
php artisan serve 75 và dán vào
CSS php artisan serve 0- Trong tab thiết bị đầu cuối mới, hãy bắt đầu quá trình xây dựng với
Phần cuối php artisan serve 1Tôi sẽ lướt qua phần này vì có khá nhiều tệp và rất nhiều thao tác sao chép và dán. Bạn sẽ bắt đầu thấy ứng dụng của mình trở nên sống động với mọi chế độ xem mới được thêm vào, vì vậy, hãy chạy ứng dụng của bạn ngay bây giờ và xem điều kỳ diệu xảy ra Phần cuối php artisan serve
Đầu tiên, tạo các thư mục và tệp sau trong thư mục cd laravel-mood-tracker
php artisan serve 76cd laravel-mood-tracker
php artisan serve 77cd laravel-mood-tracker
php artisan serve 78cd laravel-mood-tracker
php artisan serve 79cd laravel-mood-tracker
php artisan serve 80cd laravel-mood-tracker
php artisan serve 81cd laravel-mood-tracker
php artisan serve 82cd laravel-mood-tracker
php artisan serve 83cd laravel-mood-tracker
php artisan serve 84cd laravel-mood-tracker
php artisan serve 85cd laravel-mood-tracker
php artisan serve 86
Bạn có thể dán cái này vào thiết bị đầu cuối của mình để không phải tạo chúng theo cách thủ công Phần cuối php artisan serve 3Tham khảo kho lưu trữ GitHub cuối cùng nếu bạn muốn xác nhận kho lưu trữ của mình được bố trí chính xác cd laravel-mood-tracker
php artisan serve78Mở tệp cd laravel-mood-tracker
php artisan serve 88. Đây sẽ là bố cục chính sẽ được sử dụng lại trên các chế độ xem còn lại. Nội dung từ các chế độ xem khác sẽ được đưa vào nơi bạn thấy cd laravel-mood-tracker
php artisan serve 89Dán vào sau HTML php artisan serve 4cd laravel-mood-tracker
php artisan serve77Tiếp theo, mở cd laravel-mood-tracker
php artisan serve 91 và dán vào phần sauHTML php artisan serve 5Tệp này sử dụng <?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMoodsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('moods', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('color');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('moods');
}
} 7 để hiển thị trang chủ. Nếu bạn nhìn vào bộ điều khiển đó, bạn sẽ thấy dữ liệu php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 4 và php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 5 đều được truy xuất từ cơ sở dữ liệu và được chuyển đến chế độ xem này. Sau đó, bạn đang lặp qua cả hai để hiển thị trên trangcd laravel-mood-tracker
php artisan serve79Tệp này, cùng với ba tệp tiếp theo, sẽ hiển thị chế độ xem cho các trang sau - Trang đích hiển thị tất cả các mục
- Trang để xem một mục duy nhất
- Trang để chỉnh sửa một mục nhập
- Trang để tạo một mục mới
Mở cd laravel-mood-tracker
php artisan serve 79 và dán vào phần sauPHP php artisan serve 6Điều này lặp qua tất cả các mục và hiển thị chúng. Nó cũng bao gồm nút để truy cập trang chỉnh sửa riêng lẻ và nút để xóa cd laravel-mood-tracker
php artisan serve81Mở cd laravel-mood-tracker
php artisan serve 81 và dán vàoPHP php artisan serve 7Vì bộ điều khiển tài nguyên sử dụng cd laravel-mood-tracker
php artisan serve 99, nên bạn đang sử dụng một phương thức cd laravel-mood-tracker
php artisan serve 99 ẩn trên biểu mẫu với DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
01Bạn cũng đang xác thực thông tin đầu vào này trên phần phụ trợ trong DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
02, vì vậy nếu thông tin đầu vào không hợp lệ, thông báo lỗi sẽ được hiển thị ở đây với DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
03Một điều khác cần lưu ý là chế độ xem này cần hiển thị mục nhập hiện có đang được cập nhật, vì vậy bạn đang đặt giá trị cho từng mục nhập với dữ liệu mục nhập được chuyển vào từ cơ sở dữ liệu cd laravel-mood-tracker
php artisan serve80Tiếp theo, cập nhật chế độ xem được sử dụng để tạo mục nhập mới. Mở cd laravel-mood-tracker
php artisan serve 80 và dán vào phần sauPHP php artisan serve 8Điều này tương tự như chế độ xem chỉnh sửa, nhưng không có bất kỳ dữ liệu hiện có nào được kéo vào. Bạn thậm chí có thể trở nên xảo quyệt và hợp nhất hai chế độ xem, nhưng cá nhân tôi thích tách chúng ra để dễ đọc hơn cd laravel-mood-tracker
php artisan serve82Cuối cùng, tạo chế độ xem được sử dụng để hiển thị một mục nhập. Mở cd laravel-mood-tracker
php artisan serve 82 và dán vàoPHP php artisan serve 9lượt xem tâm trạngChế độ xem để tạo, cập nhật và hiển thị tâm trạng hầu như giống với chế độ xem cho mục nhập, vì vậy bạn sao chép chúng trực tiếp từ repo cuối cùng. Bạn có thể tìm mã cho chúng trong phần này trên kho lưu trữ GitHub Ứng dụng của bạn hiện đã hoàn tất và sẵn sàng để sử dụng. Hãy thử nghiệm nó Hãy chắc chắn rằng bạn vẫn có mọi thứ đang chạy - Khởi động máy chủ PHP
Phần cuối php artisan serve
- Chạy quy trình xây dựng cho Tailwind
Phần cuối php artisan serve 1- Điều hướng đến
DB_CONNECTION=mysql
DB_HOST=xxxxxxxxxx.us-east-3.psdb.cloud
DB_PORT=3306
DB_DATABASE=laravel-mood-tracker
DB_USERNAME=xxxxxxxxxxx
DB_PASSWORD=pscale_pw_xxxxxx-xx-xxxxxxxxxxxxxxxxxxxxxxxx
MYSQL_ATTR_SSL_CA=/etc/ssl/cert.pem
08 để xem ứng dụng của bạn
Thêm một mụcNhấp vào nút "Mục nhập mới" ở trên cùng bên phải và điền vào biểu mẫu. Cố gắng chọn một ngày đã được thực hiện hoặc để trống trường tâm trạng bắt buộc và bạn sẽ gặp lỗi xác thực, như mong đợi. Khi bạn gửi một mục nhập hợp lệ, bạn sẽ được đưa trở lại trang chỉ mục mục nhập nơi bạn sẽ thấy mục nhập được liệt kê Bạn cũng có thể nhấp vào nút "Chỉnh sửa" để sửa đổi mục nhập hoặc nút "Xóa" để xóa mục nhập. Ứng dụng mẫu này không tích hợp xác nhận xóa, vì vậy đừng nhấp vào trừ khi bạn chắc chắn muốn xóa nó PlanetScale cung cấp khả năng phân nhánh, tương tự như mô hình Git. Khi bạn, bạn đã tạo một nhánh phát triển bên ngoài nhánh sản xuất chính. Bạn đã dành toàn bộ thời gian làm việc trong nhánh cơ sở dữ liệu phát triển đó, thực hiện các thay đổi lược đồ khi cần. Nhưng nhánh cơ sở dữ liệu sản xuất đó vẫn trống Vì vậy, bước tiếp theo là hợp nhất nhánh phát triển này vào sản xuất. Bạn thực hiện việc này bằng cách mở yêu cầu triển khai PlanetScale (tương tự như yêu cầu kéo GitHub). Bạn có thể xem sự khác biệt lược đồ của mình tại đây và PlanetScale sẽ kiểm tra để đảm bảo không có xung đột hợp nhất Khi mọi thứ đều ổn, bạn có thể triển khai các thay đổi ngay vào sản xuất mà không cần thời gian ngừng hoạt động. Nó thực sự đơn giản Hãy tạo một yêu cầu triển khai và hợp nhất nhánh php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 3 này vào sản xuấtTrong bảng điều khiển PlanetScale của bạn, chọn cơ sở dữ liệu, nhấp vào "Nhánh" và chọn nhánh php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 3. Trên trang Tổng quan, bạn sẽ thấy biểu mẫu Yêu cầu triển khai. Đảm bảo "Triển khai tới" được đặt thành php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 2. Viết nhận xét đi kèm với yêu cầu triển khai của bạn, sau đó nhấp vào "Tạo yêu cầu triển khai"Sau khi được tạo, bạn sẽ thấy một lược đồ khác biệt trong "Thay đổi lược đồ" cho bạn biết chính xác những thay đổi mà yêu cầu triển khai này sẽ đưa ra nếu được hợp nhất. Điều này cho phép bạn và/hoặc nhóm của bạn xem xét cẩn thận các thay đổi lược đồ trước khi đưa chúng vào sản xuất Khi các thay đổi được phê duyệt, đã đến lúc hợp nhất yêu cầu triển khai Nhấp vào "Thêm thay đổi vào hàng đợi triển khai". Khi các thay đổi đang triển khai, bạn sẽ thấy tiến trình triển khai cho từng bảng. Một tính năng thực sự thú vị cần lưu ý ở đây là những thay đổi lược đồ này đang được cập nhật mà không có thời gian chết hoặc khóa. Tính năng phân nhánh cho phép PlanetScale cung cấp các thay đổi lược đồ không chặn, vì vậy ứng dụng sản xuất của bạn sẽ tiếp tục hoạt động trơn tru khi những thay đổi này được triển khai. PlanetScale đang xử lý tất cả trong nền Bây giờ, bạn có thể đi đến chi nhánh php artisan make:model Mood -mcrs
php artisan make:model Entry -mfcr
php artisan make:controller HomeController 2 của mình, nhấp vào "Lược đồ" và bạn sẽ thấy lược đồ bạn vừa tạo trong quá trình phát triển hiện đang hoạt động trong sản xuấtNếu bạn đã đến cuối, xin chúc mừng. Bạn nên có một ứng dụng theo dõi tâm trạng làm việc hoàn chỉnh với tất cả chức năng CRUD và cơ sở dữ liệu MySQL sản xuất Trong suốt hướng dẫn, bạn đã học cách - Tạo bộ điều khiển, mô hình, di chuyển, nhà máy và trình gieo hạt của Laravel 9
- Tạo biểu mẫu Laravel
- Xác thực đầu vào từ các biểu mẫu của Laravel
- Làm việc với Laravel Eloquent ORM
- Kết nối ứng dụng Laravel của bạn với cơ sở dữ liệu MySQL
- Tạo yêu cầu triển khai PlanetScale
Hãy cho tôi biết nếu bạn có bất cứ thắc mắc nào. Bạn có thể tìm thấy tôi trên Twitter tại @hollylawly. Cảm ơn vì đã đọc
Làm cách nào để thiết lập MySQL trong Laravel?
Đây là hướng dẫn đơn giản về thiết lập kết nối giữa cơ sở dữ liệu (MySQL) của bạn và ứng dụng Laravel. . Bước 1. Tạo cơ sở dữ liệu. Điều này có thể được thực hiện bởi trình quản lý cơ sở dữ liệu, ví dụ: phpMyAdmin hoặc Giao diện dòng lệnh (CLI). . Bước 2. Cập nhật. cấu hình env. . Bước 3. Di chuyển (tùy chọn)
Cơ sở dữ liệu nào là tốt nhất cho Laravel?
Hiện tại, Laravel cung cấp hỗ trợ của bên thứ nhất cho năm cơ sở dữ liệu. . MariaDB 10. 3+ (Chính sách phiên bản) mysql 5. 7+ (Chính sách phiên bản) PostgreSQL 10. 0+ (Chính sách phiên bản) SQLite 3. 8. 8+ SQL Server 2017+ (Chính sách phiên bản)
Làm cách nào để chạy truy vấn MySQL trong Laravel?
$q = Đội hình. truy vấn() ->whereIn('f2. theme_id', function($r) sử dụng ($id) { $r->select('f. theme_id')->from('user_formation AS uf') ->join('formation', function($join) sử dụng ($id) { $join->on('uf. đội hình_id', '=', 'f. id') ->where('uf
Làm cách nào để có phiên bản MySQL trong Laravel?
Bạn có thể sử dụng truy vấn RAW. $results = DB. chọn (DB. raw('SHOW VARIABLES LIKE "%version%"') ); Bạn sẽ tìm thấy chi tiết phiên bản bổ sung về phần mềm MySQL đã cài đặt của mình như innodb_version , protocol_version , version_ssl_library và hơn thế nữa. Lưu câu trả lời này. |